Как добавить дополнительные данные в form.serialize() в django ajax Call при использовании модельной формы?
У меня есть представление django, которое использует ajax для проверки валидности формы и создания нового объекта, если это так, но я хотел бы также получить некоторые дополнительные данные с помощью form.serialize(), чтобы знать, какие поля заполнены пользователем, чтобы я знал, что передать методу create. Вот представление:
def createIssue(request):
form = CreateIssueForm(request.POST or None)
if request.is_ajax() and form.is_valid():
kwargs = request.POST.get("kwargs")
print(kwargs)
# if kwargs is present
#model.objects.create(**kwargs)
context = {""}
return JsonResponse({})
return render(request, "tracking/base.html")
Вот вызов ajax:
function CreateIssueAjax(e) {
e.preventDefault();
const role = this.getAttribute('role');
const _form = $("#CreateIssueForm");
var formString = _form.serializeArray();
console.log(formString)
function sendKwargs(arr) {
let kwargs = {}
arr.forEach(el => {
if (!(el.value === "") | (!el.name === 'csrfmiddlewaretoken')) {
kwargs[el.name] = el.value
}
});
return kwargs;
}
var myData = _form.serialize();
console.log(myData);
myData['kwargs'] = JSON.stringify(sendKwargs(formString));
$.ajax({
url: "/create-issue/",
type: "post",
data: myData,
datatype: 'json',
success: function (data) {
console.log("success");
// add to ui function after success
// alert the user(alertify.js)
},
});
}
Теперь, поскольку я использую модель формы, добавление ключа kwargs к дикту формы не позволит форме быть валидной. Есть ли другой способ передать другую пару ключ-значение в свойство data и при этом валидировать форму?