是否有更有效或更清洁的方法来执行以下操作?
class SpamForm(ModelForm):
some_choices = fields.MultipleChoiceField()
def __init__(self, *args, **kwargs):
super(SpamForm, self).__init__(*args, **kwargs)
self.fields['some_choices'].choices = [[choice.pk, choice.description] for choice in self.instance.user.somechoice_set.all()]
class Meta:
model = Spam
这是为了填充新表单,其中包含与当前request.user
相关的选项(在传递给表单的实例上设置)。还有更好的方法吗?
答案 0 :(得分:0)
在表单中使用ModelMultipleChoiceField
并在queryset
中设置__init__()
。