У меня есть модель, которая содержит поле с внешним ключом, и это поле может быть NULL и является необязательным. Я могу сохранить эту форму на странице администратора без проблем, если в этом поле нет значений. Однако, когда в моей форме есть ошибка, моя форма не может быть обработана, и Django возвращает следующую ошибку:
Caught ValueError while rendering: need more than 0 values to unpack on line 19
9 {% for field in line %}
10 <div{% if not line.fields|length_is:'1' %} class="field-box{% if not field.is_readonly and field.errors %} errors{% endif %}"{% endif %}>
11 {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
12 {% if field.is_checkbox %}
13 {{ field.field }}{{ field.label_tag }}
14 {% else %}
15 {{ field.label_tag }}
16 {% if field.is_readonly %}
17 <p>{{ field.contents }}</p>
18 {% else %}
19 {{ field.field }}
20 {% endif %}
21 {% endif %}
22 {% if field.field.field.help_text %}
23 <p class="help">{{ field.field.field.help_text|safe }}</p>
24 {% endif %}
25 </div>
26 {% endfor %}
27 </div>
28 {% endfor %}
29 </fieldset>
Вот как выглядит моя модель:
class Circuit(CommonFields):
"""Circuit class model."""
vid = models.AutoField(primary_key=True)
vname = models.CharField(
'Vendor Name',
max_length=100,
null=True,
blank=True)
vspc = models.ForeignKey(
Room,
db_column='avspc',
verbose_name='Space',
null=True,
blank=True)
А вот мой custom clean () для моей пользовательской формы:
def clean(self):
"""Custom port range validator."""
super(CircuitForm, self).clean()
raise forms.ValidationError("Some stupid error just happened.")
cleaned_data = self.cleaned_data
return cleaned_data
Обратите внимание, что если я удаляю оператор повышения, мои формы могут быть успешно отправлены, однако, когда я выдаю ошибку, она выдает мне вышеуказанную ошибку.
Есть идеи, как я могу обработать мою форму, если в ней есть ошибка?
Обратите внимание, что эта ошибка возникает только тогда, когда я создаю новую запись без установки дополнительного поля или при редактировании записи, для которой не установлены дополнительные поля. Если я редактирую существующую запись, в которой установлены эти необязательные поля, если я отменяю необязательные поля, это не выдает никакой ошибки.