ように2つのモデル間の関係をレンダリングDjangoはラジオボタン、私は次のモデルを持っている
class PhoneForm(ModelForm):
class Meta:
from accounts.models import Phone
model = Phone
fields = ('type', 'number',)
modelformset_factory
に使用されています。
私はこのようなフォームセットのレンダリングだ:
<div class="span-13 last">
{{ formset.management_form }}
{% for form in Phones %}
<div class="span-2">{{ form.type|add_class:'dropdown' }}</div>
<div class="span-11 last">{{ form.number|add_class:'phone-number' }}</div>
<div class="clearfix"></div>
{% endfor %}
</div>
は今、私が何をしたいのかPhone
モデルのis_primary
性質を反映するために、テンプレートのラジオボタンをレンダリングすることです。この関係を決定するには、Phone
モデル自体またはProfile.primary_phone
を介して2つの方法があります。しかし、私はモデルをフォームセットとしてレンダリングしていますので、そのインスタンスをループして、'is_primary'
をPhoneForm
フィールドに含めることを試みましたが、それはプロパティなので動作しませんでした。
どうすればいいですか?
更新#1:
IはJPICアプローチを使用し、ラジオボタンとしてprimary
をレンダリングすることを試みた:
class PhoneForm(ModelForm):
primary = forms.BooleanField(widget=forms.RadioSelect(choices=((0, 'False'), (1, 'True'))))
class Meta:
from accounts.models import Phone
model = Phone
fields = ('primary', 'type', 'number',)
Iが必要ながらしかし、Phone
のインスタンスごとに2つのラジオボタンを示しますインスタンスごとに1つのラジオボタンのみを表示します。私はしばらくそれを試してみて、それを正しく表示できるかどうかを見ます。
class Profile(models.Model):
verified = models.BooleanField(default=False)
primary_phone = models.OneToOneField('Phone', related_name='is_primary', null=True, blank=True)
class Phone(models.Model):
profile = models.ForeignKey(Profile)
type = models.CharField(max_length=16)
number = models.CharField(max_length=32)
あなたが持っている必要があります:代わりの
これは、作業を行い、それが 'だとき、空のために' Phone'フォームが[値]は 'NONE'あるので、私はそれらを処理することができます彼らが値を持っているかどうかを確認してください。私はあまりカスタムコード/より多くのdjangoスタイルの方法を望んでいた。 – abstractpaper
私はあなたの最初のアプローチが好きです!私はモデルを変更しても問題ありません。しかし、各 'Phone'インスタンスのラジオボタンをレンダリングしようとすると、インスタンスごとに2つのラジオボタン(true/false)が表示されます。私はあなたが何を意味するかを一分で自分の投稿を編集します。 – abstractpaper