2009-04-14 23 views
5

Esasen sadece bir dize olan bir modelim var (django.db.models.CharField). Bu modelin sadece birkaç örneği saklanacaktır. Bu değerleri nasıl bir formda seçimler olarak kullanabilirim?Django: Form seçenekleri olarak saklanan model örneklerini nasıl kullanılır?

göstermek için, bir model BlogTopic olabilir. Kullanıcılara abone olmak için bir veya birkaç konu seçme olanağı sunmak istiyorum.

ben gibi bir şey yazmaya başladı:

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) 

Ama choices tanımlanabilir ne zaman emin değilim. Sadece modül ilk alındığında (yani Django başlatırken) farz ediyorum. Açıkçası bu çok iyi bir yaklaşım değil.

Bu genel bir gereklilik gibi görünüyor, ancak hiçbir örnek bulamıyorum. Burada bariz bir şey eksik olabileceğinden şüpheleniyorum. Her neyse, cevaplarınız için şimdiden teşekkürler.

cevap

17
topics = forms.ModelMultipleChoiceField(queryset=BlogTopic.objects.all()) 
+4

İyi cevap size ModelMultipleChoiceField kullanmak neden olmasın emin hariç - ChoiceField OP kullanımı göz önüne alındığında, uygun eşdeğer sadece ModelChoiceField olurdu. –

İlgili konular