Привет, я поигрался в shell / html и похоже, что все это должно работать.
Похоже, вы можете делать то, что вы отправили.
Вы сказали, что не знаете, как назначить выбор в представлении? Я проверил ваш код, и, похоже, он работает? form.fields[myfield] = forms.NewField()
правильно изменяет следующий вызов для отображения формы.
Похоже, вы также можете напрямую редактировать атрибут form.fields [myfield] .choices.
class MyForm(forms.Form):
myfield = forms.ChoiceField(choices=[(x, x+1) for x in range(3)])
# hmm choices is an interesting attribute
>>> form.fields['myfield'].choices
[(0, 1), (1, 2), (2, 3)]
>>> form.fields['myfield'].choices = [('New', 'Choice') for x in range(3)]
>>> form.as_p()
<output reflecting new choices>
Что касается отключения поля:
Ваш код для его отключения не работает, потому что type='hidden'
не применяется к <select>
элементам.
Я думаю, что вы можете отключить его:
- Скрыть поле.
form.fields['myfield'].widget.attrs['styles'] = 'display:none;'
- Удалить поле.
del form.fields['myfield']
- Выберите, чтобы оно не отображалось в шаблоне.
{% if product.get_options %}{{ field }}{% endif %}
- О, я вижу, что вы можете использовать формы. Скрытый вход () ниже.
Похоже, вы прошли 99% пути?