我目前的模型看起来像这样
class Lg(models.Model):
name = models.CharField(max_length = 50,choices = LG_CHOICES,unique = True)
class State(models.Model):
name = models.CharField(max_length = 50,choices = STATE_CHOICES,unique = True)
lg = models.ManyToManyField(Lg,related_name ='State_Lg',blank= True,null = True)
class AddPlaceForm(forms.Form):
house_number = forms.IntegerField()
street_name = forms.CharField()
area = forms.CharField()
city = forms.CharField()
lg = forms.ChoiceField(choices = Lg.objects.none())
def __init__(self,state_id,*args,**kwargs):
super(GenericPropertyForm,self).__init__(self,*args,**kwargs)
self.fields['lg'] = forms.ChoiceField(choices=list(State.objects.get(id = state_id).lg.select_related()))
我希望用户从视图中传递状态ID,如form = AddPlaceForm(state_id)
任何人都可以帮助这个
答案 0 :(得分:0)
在您的观看代码中:
form = AddPlaceForm(state_id=state_id}
形式
def __init__(self, *args, **kwargs):
state_id = kwargs.pop('state_id', None)
super(AddPlaceForm, self).__init__(*args, **kwargs)
self.fields['lg'] = forms.ChoiceField(choices = ((lg.id, lg.name) for lg in State.lg.filter(id=state_id))