Django:Model FormSet上的IntegrityError-不包括必需的M2M字段

Django:Model FormSet上的IntegrityError-不包括必需的M2M字段,django,many-to-many,django-forms,Django,Many To Many,Django Forms,因此,我有一个房屋模型的modelformset,它有一个owners manytomy字段,我不包括owners字段,因为我希望它只是自动将当前登录的用户id保存为owner-我可以用隐藏字段来解决这个问题,但更希望知道如何正确地完成它 为了清楚起见,完整性错误是所有者id不能为空,我试图通过硬编码来修复它,只是为了看到它在manage_House的开始部分失败了 视图.py def manage_houses(request):

因此,我有一个房屋模型的modelformset,它有一个owners manytomy字段,我不包括owners字段,因为我希望它只是自动将当前登录的用户id保存为owner-我可以用隐藏字段来解决这个问题,但更希望知道如何正确地完成它

为了清楚起见,完整性错误是所有者id不能为空,我试图通过硬编码来修复它,只是为了看到它在manage_House的开始部分失败了

视图.py

 def manage_houses(request):                                                                                                                                                                                                                 
    HousesFormSet = modelformset_factory(House, form=ManageHousesForm)                                                                                                                                                                  

    if request.method == 'POST':                                                                                                                                                                                       
        formset = HousesFormSet(request.POST)                                                                                                                                                                                               

        # failed attempt at fixing integrity error                                                                                                                                                                                                                 
        for form in formset:                                                                                                                                                                                                                  
            form.owner_id = 1                                                                                                                                                                                                            

        if formset.is_valid():                                                                                                                                                                                                                
            if formset.save():                                                                                                                                                                                                                
                notice      = "Success! Your houses were updated in the system."                                                                                                                                                            
                notice_type = "success"                                                                                                                                                                                                       
            elif not formset.has_changed():                                                                                                                                                                                                   
                pass                                                                                                                                                                                                                          
            else:                                                                                                                                                                                                                             
                notice      = "Something went wrong! Your houses may not have been updated."                                                                                                                                                
                notice_type = "error"                                                                                                                                                                                                         
    else:                                                                                                                                                                                                                                     
        formset = SpecialsFormSet()                                                                                                                                                                                                           

    response_details = { 'formset': formset,                                                                                                                                                                                                  
                     'fields':  ManageHousesForm.base_fields }                                                                                                                                                                          

    try:                                                                                                                                                                                                                                      
        response_details['notice']      = notice                                                                                                                                                                                              
        response_details['notice_type'] = notice_type                                                                                                                                                                                         
    except NameError:                                                                                                                                                                                                                         
        pass                                                                                                                                                                                                                                  

    return render_to_response('houses/manage.djhtml', response_details)
型号.py

class House(models.Model):                                                                                                                                                                                                               
    class Meta:                                                                                                                                                                                                                               
        app_label = 'houses'                                                                                                                                                                                                             

    # Fields                                                                                                                                                                                                                                  
    owners          = models.ManyToManyField(User)                                                                                                                                                                                            

    name            = models.CharField(max_length=50)                                                                                                                                                                                         
    slug            = models.SlugField(max_length=100, blank=True, editable=False, unique=True)                                                                                                                                               
    address         = models.CharField(max_length=75)                                                                                                                                                                                                 

    def __unicode__(self):                                                                                                                                                                                                                    
        return self.name

根据Django文档,这就是我们的目的:

内联表单集是模型表单集之上的一个小抽象层。 这些简化了通过外部数据库处理相关对象的情况 钥匙


你能附上你的型号代码吗?