2012-09-17 13 views
7

Angesichts dieser einfachen Tabelle in SQLAlchemy und Django models.py geschrieben, wie würde ich UPC als einmalig, wenn nicht null. UPC wird nicht für alle Elemente verfügbar sein, aber sollte es eindeutig sein.Unique wenn nicht null SQLAlchemy und Django

class Products(base): 
    __tablename__ = u'products' 
    id = Column(Integer(), primary_key=True, autoincrement = True) 
    product_name = Column(String(), unique=True, nullable=False) 
    upc = Column(String(), nullable = True) 

Und

class Products(models.Model): 
    id = models.AutoField(primary_key=True) 
    product_name = models.TextField() 
    upc = models.TextField(null=True, blank=True) 

Antwort

7

Mehrere Zeilen mit NULL-Werten sollte kein Problem für die eindeutige Einschränkung sein. Nur "Werte" müssen eindeutig sein, NULL ist kein Wert.

Haben Sie versucht ?:

upc = Column(String(), unique=True, nullable=True) 
+2

Ok, das Sinn macht. Ich erkannte, dass ich irgendwo in der Anwendung einen Fehler gemacht habe, wo ich null haben möchte, aber ich könnte tatsächlich eine leere Zeichenfolge einfügen, so dass es Probleme mit der Eindeutigkeit geben würde. – MCH

Verwandte Themen