Django: Как использовать сохраненные экземпляры модели в качестве выбора формы? - PullRequest
6 голосов
/ 14 апреля 2009

У меня есть модель, которая по сути является просто строкой (django.db.models.CharField). Будет сохранено только несколько экземпляров этой модели. Как я могу использовать эти значения в качестве выбора в форме?

Для иллюстрации модель может быть BlogTopic. Я хотел бы предложить пользователям возможность выбрать одну или несколько тем для подписки.

Я начал писать что-то вроде:

from mysite.blog.models import BlogTopic

choices = [(topic.id, topic.name) for topic in BlogTopic.objects.all()]

class SubscribeForm(forms.Form):
    topics = forms.ChoiceField(choices=choices)

Но я не уверен, когда будет определено choices. Я предполагаю, только когда модуль импортируется впервые (т.е. при запуске Django). Очевидно, что это не очень хороший подход.

Кажется, это было бы обычным требованием, но я не могу найти никаких примеров. Я подозреваю, что я могу упустить что-то очевидное здесь. В любом случае, заранее спасибо за ваши ответы.

1 Ответ

20 голосов
/ 14 апреля 2009
topics = forms.ModelMultipleChoiceField(queryset=BlogTopic.objects.all())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...