私が使用するコードは次のとおりです。実行時にdjangoフォームを変更する最も良い方法は何ですか?
class VoteForm(forms.ModelForm):
other_choice1 = forms.BooleanField(required=False)
other_choice2 = forms.BooleanField(required=False)
other_choice3 = forms.BooleanField(required=False)
other_choice4 = forms.BooleanField(required=False)
class Meta:
model = Vote
exclude = ('choice', 'other_choices',)
def __init__(self, poll_id, *args, **kwargs):
super(VoteForm, self).__init__(*args, **kwargs)
p = get_object_or_404(Poll, pk=poll_id)
choices = p.choice_set.all()
choices_len = len(choices)
f = ['other_choice1','other_choice2','other_choice3','other_choice4']
for i in range(0,choices_len):
self.fields[f[i]].label = str(choices[i])
for i in range(choices_len,4):
del self.fields[f[i]]
これは、私は、実行時にフォームのフィールドを変更するために見つけた最良の方法です。実装をハッキングしたような感じです。それを行うための明確な方法は何ですか?
おかげで、 アレックス
私は、Django IRCチャンネルにかなりの数の有能な開発者がいることを発見しました。あなたがまだ持っていない場合は、このページのURLを渡すことをお勧めします。 –
何をしようとしていますか?そのコードで見るのは難しいです。投票と投票のモデルを投稿できますか? –
@Doc、あなたはIRCチャンネルのシリングをやめますか? Stackoverflowには、かなりの数の有能なDjango開発者がいます。 –