Django - 模型中的ManyToManyField,如何设置为null?
我有一个Django模型(A),它有一个多对多字段(types),这个字段连接到另一个模型(B)。简单来说,这个字段的意思是“可以选择性地限制这个对象的值”。我在这个多对多字段上设置了 blank=null
和 null=True
。我已经根据这个模型创建了一个对象,并给types设置了一些值,一切都很好。
现在我想把它设置为'null',也就是禁用这个字段。但是在Django的命令行界面里,我遇到了以下错误:
>>> o.types.all()
[<Type: foo>, <Type: bar>]
>>> o.types = None
File "<console>", line 1, in <module>
File ".../virtualenv/lib/python2.6/site-packages/django/db/models/fields/related.py", line 627, in __set__
manager.add(*value)
TypeError: add() argument after * must be a sequence, not NoneType
我可以成功地把它设置为空列表 []
,但我想把它设置为None,因为我想用None作为一个信号或标志。请问在Django模型中可以这样做吗?
我使用的是Django 1.1
2 个回答
1
我觉得把它设置为None是不太可能的。想想在SQL层面上,M2M(多对多关系)是怎么实现的。它是一个中间表,你要把“None”写到哪里去呢?
如果你需要一个单独的标记,为什么不增加一个新的列呢?