动态相关对象django形式

时间:2012-10-28 15:36:36

标签: django django-forms

我目前的模型看起来像这样

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)

任何人都可以帮助这个

1 个答案:

答案 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))