Ho un modello che è essenzialmente solo una stringa (django.db.models.CharField). Ci saranno solo diverse istanze di questo modello memorizzato. Come potrei usare quei valori come scelte in un modulo?Django: come utilizzare le istanze di modello memorizzate come scelte di forma?
Per illustrare, il modello potrebbe essere BlogTopic
. Mi piacerebbe offrire agli utenti la possibilità di scegliere uno o più argomenti per iscriversi.
ho cominciato a scrivere qualcosa di simile:
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)
ma non sono sicuro di quando sarebbe definito choices
. Presumo solo quando il modulo viene importato per la prima volta (ad es. All'avvio di Django). Ovviamente non è un buon approccio.
Sembra che sarebbe un requisito comune, ma non riesco a trovare alcun esempio. Sospetto che possa mancare qualcosa di ovvio qui. Comunque, grazie in anticipo per le tue risposte.
Buona risposta, tranne non sono sicuro del motivo per cui si utilizza ModelMultipleChoiceField: dato l'utilizzo dell'OP di ChoiceField, l'equivalente appropriato sarebbe solo ModelChoiceField. –