2010-10-12 64 views
5

我有一个Django模型(A)有一个ManyToManyField(类型)到另一个模型(B)。从概念上讲,A中的字段是“可选地将这个对象限制为这些值”。我在ManyToManyField上设置了blank=nullnull=True。我从这个模型创建了一个对象,并将类型设置为一些值。一切都很好。Django - 模型中的ManyToManyField,将其设置为null?

我想将它设置为'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 

我可以成功地将其设置为[](空单),但我想将其设置为无,因为我想用无作为信号/标记。这在Django模型中可能吗?

我使用Django 1.1

回答

2

我不认为这是可以将其设置为无 - 想想M2M如何在SQL层上实现(这是一个intermidiate表,你在哪里可以写你的“无”来? )。

如果你需要一个单独的标志,为什么不引入另一列?

11
+0

clear()看起来像个不错的开始。执行clear()后,字段是否设置为[]或None? – Rory 2010-10-12 10:33:40

+2

@Rory:当你尝试它时,你观察到了什么? – 2010-10-12 11:09:29

相关问题