Добавление выбора в Django ModelForm
У меня есть базовая Django ModelForm. Я пытаюсь добавить Django выбор (выбор/выпад) к этой ModelForm. Код, который у меня есть, был собран из различных примеров в Интернете (см. ниже) - по мере того, как я пытаюсь изучить Django. Пока я не могу найти правильный код для добавления выбора Django. То, что я написал, приведено ниже. Я пробовал различные комбинации ключевых слов и параметров в forms.py, например:
from django.forms import ModelForm
#
from .models import P2Poll
#
categ_choice= [
('AB', 'AB'),
('CD', 'CD'),
('EF', 'EF'),
('GH', 'GH'),
]
#
class AnyForm(ModelForm):
class Meta:
model = P2Poll
fields = ['q_text', 'Choice1_text', 'Choice2_text','C1_Type','C2_Type']
#
category = forms.ChoiceField(max_length=2, choices=categ_choice)
#
Код был взят из следующего (среди прочих)
django использовать выбор модели в modelform
https://docs.djangoproject.com/en/4.0/topics/forms/modelforms/
https://www.geeksforgeeks.org/meta-class-in-models-django/
http://www.learningaboutelectronics.com/Articles/How-to-create-a-drop-down-list-in-a-Django-form.php
При попытке использовать приведенный выше вариант кода, я получаю следующее сообщение об ошибке:
.. \forms.py", строка 28, в Meta category = forms.ChoiceField(max_length=2, choices=categ_choice) NameError: имя 'forms' не определено
Я пробовал различные другие попытки добавить выбор/селект в мою Django форму, например:
from django.forms import ModelForm, forms
и я не могу заставить ни одну из них работать - есть разные сообщения об ошибках, но все они относятся к моей попытке добавить выбор Django к (модели?) форме.
Как я понимаю, создавая (базовую) форму в Django, нужно довольно подробно описать, что будет в форме. (Как я понимаю) при использовании ModelForms, нужно просто указать, какие данные должны появиться на форме, а Django делает интеллектуальный/стандартный выбор внешнего вида формы. Возможно, я пытаюсь объединить ModelForms с (стандартными?) формами Django - я не знаю. Я просто пытаюсь понять, как добавить выбор/селекцию в Django (модельную) форму. Я учусь.
Возможно, то, что я пытаюсь сделать, невозможно с теми "частями", которые я собрал. Я прочитал документацию Django по формам, и она кажется мне непонятной с моим уровнем знаний. Я уверен, что мое понимание документации улучшится по мере того, как я буду лучше понимать Django
Попытка:
from django import forms # <-- Updated
from .models import P2Poll
categ_choice = [
('AB', 'AB'),
('CD', 'CD'),
('EF', 'EF'),
('GH', 'GH'),
]
class AnyForm(forms.ModelForm): # <-- Updated
class Meta:
model = P2Poll
fields = ['q_text', 'Choice1_text', 'Choice2_text', 'C1_Type', 'C2_Type']
category = forms.ChoiceField(max_length=2, choices=categ_choice)
Проблема заключалась в вашем подходе к импорту форм.