Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
{% if action == 'gift' or action == 'change' %}
<dl>
<dt>
<label for="{{ prefix_id }}-conditions">{{ product_form.conditions.label }}</label>
</dt>
<dd>
{{ product_form.conditions }}
{{ product_form.conditions.errors }}
</dd>
</dl>
{% endif %}
management_form, которые в шаблонах не нуждаются.{{ form.title|add_class:"css_class_1 css_class_2" }}
<input class="css_class_1 css_class_2" name="title" id="{{ prefix_id }}-title" />
<label for="{{ prefix_id }}-title">{{ form.title.label }}</label>
Я не очень понимаю, чем в общем случае вот этот код:
{{ form.title|add_class:"css_class_1 css_class_2" }}
лучше простого вывода поля в виде html:
<input class="css_class_1 css_class_2" name="title" id="{{ prefix_id }}-title" /> <label for="{{ prefix_id }}-title">{{ form.title.label }}</label>
{# fields/as_dl.html #}
<dl>
<dt>
{{ field.label_tag }}}
</dt>
<dd>
{{ field }}
{{ field.errors }}
</dd>
</dl>
<form action='.' method='POST'> {% csrf_token %}
{% include 'fields/as_dl.html' with field=product_form.title %}
{% include 'fields/as_dl.html' with field=product_form.conditions %}
</form>
<form action='.' method='POST'> {% csrf_token %}
{% include 'fields/as_dl.html' with field=form.title %}
{% include 'fields/as_dl.html' with field=form.conditions|add_class:"foo" %}
</form>
{% for field in product_form %}
{% include 'fields/as_dl.html' %}
{% endfor %}
def object_edit_or_add_post_save(self, request, entity_name, object_id=None):
self.check_the_entity(entity_name)
if request.method == 'GET':
""" если GET, то запрашивается страница """
return self.object_edit_or_add(request, entity_name, object_id)
elif request.method == 'POST':
""" если POST, то передаются данные """
return self.object_save(request, entity_name, object_id)
def object_save(self, request, entity_name, object_id=None):
...
if f.is_valid():
f.save()
return HttpResponseRedirect(self.root + entity_name)
else:
# ищем ошибки
for e, e_message in f.errors.items():
field = f.fields[e]
field.error = True
field.error_message = e_message
...
<form name="edit" method="post" action="">
{% csrf_token %}
...
</form>
Django — обработка ошибок в ajax-формах