2010-10-12 13 views
5

I tienen un modelo django (A) que tiene un ManyToManyField (tipos) a otro modelo (B). Conceptualmente, el campo en A es 'opcionalmente limita este objeto a estos valores'. He puesto blank=null y null=True en el ManyToManyField. Creé un objeto a partir de este modelo y establecí los tipos en algunos valores. Todo es bueno.Django - ManyToManyField en un modelo, poniéndolo en null?

Quiero ponerlo en 'nulo', es decir, deshabilitarlo. Pero en la cáscara Django, consigo los siguientes errores:

>>> 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 

que puede establecer con éxito para [] (la lista vacía), pero me gustaría ponerlo en Ninguno, ya que quiero usar Ninguno como señal/bandera. ¿Es esto posible en los modelos de Django?

estoy usando Django 1.1

Respuesta

2

no creo que es posible configurarlo para que ninguno - pensar en cómo M2M se implementa en la capa de SQL (se trata de una mesa de intermidiate, donde usted puede escribir su "Ninguno" a?)

Si necesita una bandera separada, por qué no introducir otra columna?

Cuestiones relacionadas