gpt4 book ai didi

python - (Django) (外键问题) model.person_id 不能为 NULL

转载 作者:行者123 更新时间:2023-11-28 18:54:38 26 4
gpt4 key购买 nike

我知道这在 Django 圈子里似乎是一个被问得太多的问题,但我不敢说我​​还没有找到解决这个问题的方法。

我的模型 -

from djago.... import User
class InfoPersonal(models.Model):
...
person = models.OneToOneField(User)

我已经尝试覆盖管理定义中的 save_model() 并覆盖表单中的 save() 但似乎没有任何效果。

如果您要将数据自动添加到模型的 ForeignKey 或 OneToOneField 列中,您会怎么做?

  def profile_creation_personal(request):
if request.method == 'POST': # If the form has been submitted...
form = PersonalForm(request.POST) # A form bound to the POST data
# form.person = request.user
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
form.save()
return HttpResponseRedirect('/done') # Redirect after POST
else:
form = PersonalForm() # An unbound form
return render_to_response('info/personal/profile_create.html', { 'form': form,})


class PersonalForm(ModelForm):
#hometown_id = ModelChoiceField(queryset=InfoReferenceCities.objects.all(),empty_label=None)
def save(self, *args, **kwargs):
self.person = request.user
super(PersonalForm, self).save(*args, **kwargs)
class Meta:
model = InfoPersonal
exclude = ('person',)
widgets = {'dateofbirth' : SelectDateWidget()}

最佳答案

我得到答案了!!!我感觉很好!

personal = form.save(commit = False)
personal.person = request.user
personal.save()

这很像 Ignacio 所说的那样进入 View ,只有 commit = False 是它保存实例而不抛出异常的关键语句。感谢所有帮助过的人!!
干杯

关于python - (Django) (外键问题) model.person_id 不能为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com