Django:Model FormSet上的IntegrityError-不包括必需的M2M字段
因此,我有一个房屋模型的modelformset,它有一个owners manytomy字段,我不包括owners字段,因为我希望它只是自动将当前登录的用户id保存为owner-我可以用隐藏字段来解决这个问题,但更希望知道如何正确地完成它 为了清楚起见,完整性错误是所有者id不能为空,我试图通过硬编码来修复它,只是为了看到它在manage_House的开始部分失败了 视图.pyDjango: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):
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文档,这就是我们的目的: 内联表单集是模型表单集之上的一个小抽象层。 这些简化了通过外部数据库处理相关对象的情况 钥匙
你能附上你的型号代码吗?