0

脆皮表单错误这是我使用Django脆皮形式时遇到的问题。与外键,我从查询集

以下为模型场(只显示必要的代码)”

class Product(models.Model): 
    name=models.CharField(max_length =200) 
    unit = models.ForeignKey(Unit,related_name='product_master_master_unit') 
    manufacturer=models.ForeignKey(Manufacturer,related_name='product_master_master_manufacturer') 
    tenant=models.ForeignKey(Tenant,related_name='product_master_user_tenant') 
    objects = TenantManager() 

现在,这是我的形式,我一直在使用酥脆形式之前。我一直只查询这些领域,这是针对目前的租户做到这一点,根据以下内容:。

class ProductForm(forms.ModelForm): 
    def __init__(self,*args,**kwargs): 
     self.tenant=kwargs.pop('tenant',None) 
     super (ProductForm,self).__init__(*args,**kwargs) # populates the post 
     self.fields['unit'].queryset = Unit.objects.for_tenant(self.tenant).all() 
     self.fields['manufacturer'].queryset = Manufacturer.objects.for_tenant(self.tenant).all() 

    class Meta: 
     model=Product 
     exclude =('slug', 'tenant') 

,如果我不使用脆形式然而,在使用香脆形成我的错误也能正常工作是外键字段,与单位和制造商(正在查询特定租户)相关的不是showi以脆皮形式提供任何选项。有什么办法能够以清脆的形式表现出来吗?还是我必须完全放弃这种脆弱的形式?

只是为了帮助你,如果允许动态选择的话,我可以用django的“ForeignKey.limit_choices_to”做什么。任何帮助将不胜感激。

回答

0

刚刚解决它与以下的东西。

通常情况下,我们称之为形式用下面的代码:

from .forms import Formname 
form=Formname() 

现在,如果我这样做,不知何故,初始化构造函数crispyform没有得到当前请求的数据。

但是,如果我用下面的代码中,crispyform获取用户数据:

from .forms import Formname 
form=Formname(request.user.whatever_you_need) 

这种详细的答案以供将来参考。希望这会有所帮助。