本文介绍了Django OneToOne反向关系不允许空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这种架构(非常简化)

I have this architecture (very simplified)

from django.db import Models

class MainClass(models.Model):
    a = models.IntegerField()
    b = models.CharField()

class OtherClass(models.Model):
    c = models.IntegerField()
    main = models.OneToOneField(MainClass, primary_key=True)

这意味着我的 MainClass对象具有一个名为otherclass的属性,因为这些模型之间存在反向关系.

我的问题是,如果我为MainClass.a和MainClass.b指定有效值,但为MainClass.otherclass指定无值.我得到了错误

My problem is if I specify valid values for MainClass.a and MainClass.b, but None for MainClass.otherclass. I get the error

ValueError:无法分配任何值:"MainClass.otherclass"不允许为空值.

ValueError: Cannot assign None: "MainClass.otherclass" does not allow null values.

我知道没有MainClass就不可能有OtherClass(这没有意义),但是为什么相反的情况也会引起错误呢?其他方式:为什么没有OtherClass不能成为MainClass?

I understand there cannot be OtherClass without MainClass (it doesn't make sense), but why the opposite situation is also causing an error? Other way: Why cannot be MainClass without OtherClass?

推荐答案

看起来像这是正常现象在Django 1.8中,尽管限制已在Django 1.10中删除

所以,这不是错误.

这篇关于Django OneToOne反向关系不允许空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-29 07:30