Как преобразовать форму Django, чтобы определить, где ключи - это идентификатор поля в шаблоне, а значения - начальные значения?
У меня огромная форма django, и мне нужно создать dict, где ключи - это идентификатор поля в шаблоне, а значения - начальные значения? Что-то вроде этого:
{'field1_id_in_template': value1, ...}
Кто-нибудь знает, как это сделать?
Я могу добавить префиксЯ бы_' для каждого имени поля в словаре form.fields, но у меня может быть проблема, если кто-то изменит id для widget.attrs
Ответ:
Это метод CBV:
def post_ajax(self, request, *args, **kwargs):
form = ChooseForm(request.POST, log=log)
if form.is_valid():
instance = form.save()
inst_form = InstanceForm(instance=instance, account=request.user)
fields = {}
for name in inst_form.fields:
if name in inst_form.initial:
fields[inst_form.auto_id % name] = inst_form.initial[name]
return HttpResponse(
json.dumps({'status': 'OK','fields':fields},
mimetype='appplication/json'
)
assert False
И вот почему я так поступаю: с помощью этого ответа я могу написать что-то подобное на клиенте. Теперь я нене нужно вручную инициализировать все поля на странице
function mergeFields(data) {
for(var id in data) {
$("#"+id).val(data[id]).change();
}
}