0

私は単純なモデルフォームを持っています:

 class ProductSelectionForm(ModelForm):
     class Meta:
         model = Product

およびモデル:

class Product(models.Model):
     name = models.CharField(max_length=155)

     def __unicode__(self):
         return self.name

ただし、 {{ form.as_p }}タグを使用してフォームをレンダリングすると、フォームは単一のテキスト入力としてレンダリングされます。nameをオプションラベルとして、を値として、フォームをラジオ選択オプションとしてレンダリングするにはどうすればよいpkですか?私は使ってみwidgetましたが、喜びはありません。

どんな助けでも大歓迎です。

4

1 に答える 1

9

そのためのモデルフォームは必要ありません。モデルインスタンスを作成および編集するためのものです。代わりに、既存のインスタンスを選択するためのフォームが必要と思われます。そのためには、ModelChoiceFieldで通常のフォームを使用します。

class ProductSelectionForm(forms.Form):
    choice = forms.ModelChoiceField(queryset=Product.objects.all(), 
                                    widget=forms.RadioSelect)
于 2012-11-22T19:03:44.297 に答える