Как узнать пустые и непустые поля после отправки формы django ajax?
У меня есть модель формы, которая позволяет вводить некоторые необязательные поля. Я застрял на том, чтобы найти способ, который позволит мне точно знать, какое поле пришло с данными, а какое нет, чтобы при создании экземпляра модели не пропустить введенные пользователем данные. Сначала я думал о сериализации формы с помощью serializeArray
, затем получить непустое значение и добавить его в form.serialize(), но это не позволяет форме быть валидной. Вот смотрите вопрос.
Есть ли способ узнать это, даже если это происходит до обработки ajax или в самом django view? Заранее спасибо. Код:
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;
}
console.log(sendKwargs(formString));
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)
},
});
}
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 if present
# model.objects.create(**kwargs)
context = {""}
return JsonResponse({})
return render(request, "tracking/base.html")