(Django)(外键问题)型号:个人识别号不能为空

2024-09-30 08:37:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的模特-

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

我尝试了重写管理定义中的save_model(),也覆盖了表单中的save(),但似乎没有任何效果。在

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

^{pr2}$

Tags: djangofromimportmodel定义modelssaveclass
3条回答

我知道答案了!!!我感觉很好!在

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

这很像Ignacio所说的,只有commit=False是一个关键语句,它可以保存实例而不引发异常。谢谢所有帮忙的人!!
干杯

看到这个了吗

parent = models.ForeignKey('self', blank=True, null=True, verbose_name=_("parent"))

这没问题,但是sqlite有问题,把它改成postgresql就可以了。(这是我的代码,改成你的状态)

在PersonalForm中,可以将save()函数的子类化,以便添加适当的数据,如下所示:

class PersonalForm(ModelForm):
    def save(self, *args, **kwargs):
        self.person = request.user
        super(PersonalForm, self).save(*args, **kwargs)

    class Meta:
        model = Personal

相关问题 更多 >

    热门问题