2010-10-12 3 views
5

Ho un modello django (A) che ha un ManyToManyField (tipi) in un altro modello (B). Concettualmente il campo in A è un "opzionalmente limitare questo oggetto a questi valori". Ho impostato blank=null e null=True su ManyToManyField. Ho creato un oggetto da questo modello e impostato i tipi su alcuni valori. Va tutto bene.Django - ManyToManyField in un modello, impostandolo su null?

Voglio impostarlo su 'null', cioè disabilitarlo. Ma nel guscio Django, ottengo i seguenti errori:

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

posso impostare con successo al [] (la lista vuota), ma vorrei impostarlo su Nessuno, dal momento che voglio usare Nessuno come segnale/bandiera. Questo è possibile nei modelli di Django?

sto usando Django 1.1

risposta

2

non credo sia possibile impostare su Nessuno - pensare a come M2M è implementata sullo strato di SQL (si tratta di un tavolo intermidiate, in cui è possibile scrivere il vostro "Nessuno" per?).

Se è necessaria una bandiera separata, perché non introdurre un'altra colonna?