Я пытаюсь добавить репортера с ajax, но он не работает должным образом. Когда я отправляю данные json с помощью {'reporter':reporter.name}
, он успешно создает объект в базе данных, но я не могу отобразить этот вновь созданный объект в параметре выбора. Мне нужно обновить sh, чтобы увидеть этот объект в опции выбора. Затем я попытался отправить экземпляр объекта как JsonResponse путем сброса с помощью json.dumps(obj)
, но я получаю эту сериализуемую ошибку.
Мне нужно создать объект-репортер и отобразить его в опции выбора без обновления страницы sh . Как мне это сделать ? Что не так в моем подходе?
просмотр
class AddReporterView(View):
def post(self, request):
name = request.POST.get('name')
reporter = Reporter.objects.create(name=name)
data = {
'reporter': json.dumps(reporter)
}
return JsonResponse(data)
Скрипты
$(document).on('submit','#target-category-form',function(e) {
e.preventDefault();
var form = $(this);
$.ajax({
url: form.attr("action"),
data: {
name:$('#name').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
},
type: 'POST',
dataType:'json',
success: handleFormSuccess,
});
});
function handleFormSuccess(data){
$("#id-categories").html(data);
$('#modalOpen').modal('toggle');
console.log(data);
}
Я хочу отобразить созданные данные здесь, в этом html элементе выбора
<select class="form-control" name="reporter" multiple="multiple" id="id-categories">
{% for reporter in reporters %}
<option value="{{reporter.pk}}">{{reporter.name}}</option>
{% endfor %}
</select>