I want to create a dynamic html form Select Dropdown List using data from JSON url from DJANGO model.I want that Select Dropdown List to be update dynamic without the user need to refresh the page to get last changes from json url.
for example if some other user add new entry in django table then that Dropdown List update automatically without need refresh page.
but in my code the user need refresh the page to get last changes
any idea who to avoid refresh page to get data ?
here the code :
views.py
def test_json(request):
response_data=serialize('json',andress.objects.all())
return HttpResponse(response_data,content_type='json')
urls:
url(r'^test_data/$', test_json, name='test_json'),
json link :
[
{
model: "log.mymodel",
pk: 3,
fields: {
f1: "some vasa",
f2: "some vadada",
f3: "some vsasa",
}
},
{
model: "log.mymodel",
pk: 4,
fields: {
f1: " some v1",
f2: "some v2",
f3: "some v3",
}
}
]
html page :
<select id="locality-dropdown" name="locality">
</select>
<script>
let dropdown = document.getElementById('locality-dropdown');
dropdown.length = 0;
let defaultOption = document.createElement('option');
defaultOption.text = 'Choose State/Province';
dropdown.add(defaultOption);
dropdown.selectedIndex = 0;
const url = 'http://127.0.0.1:8000/test_data/';
const request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
if (request.status === 200) {
const data = JSON.parse(request.responseText);
let option;
for (let i = 0; i < data.length; i++) {
option = document.createElement('option');
option.text = data[i].pk;
option.value = data[i].pk;
dropdown.add(option);
}
} else {
// Reached the server, but it returned an error
}
}
request.onerror = function() {
console.error('An error occurred fetching the JSON from ' + url);
};
request.send();
</script>