Добавление выбора в 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)

Проблема заключалась в вашем подходе к импорту форм.

Вернуться на верх