Heim >Backend-Entwicklung >Python-Tutorial >Django-Dokumentation – Modellfeldoptionen (FieldOptions)

Django-Dokumentation – Modellfeldoptionen (FieldOptions)

黄舟
黄舟Original
2016-12-17 16:08:001287Durchsuche

Erstellen Sie ein einfaches Modell

Klasse Person(models.Model):
GENDER_CHOICES=(
(1,'Male'),
(2,'Female'),
)
name=models.CharField(max_length=30,unique=True,verbose_name='name')
birthday=models.DateField(blank=True,null=True)
gender=models. IntegerField(choices=GENDER_CHOICES)
account=models.IntegerField(default=0) 

blank

Wenn auf True gesetzt, kann das Feld leer sein. Wenn es auf „Falsch“ gesetzt ist, ist das Feld ein Pflichtfeld. Die Zeichenfelder CharField und TextField verwenden leere Zeichenfolgen zum Speichern von Nullwerten. Wenn

null

auf True gesetzt ist, verwendet Django Null, um leere Werte zu speichern. Datums-, Uhrzeit- und numerische Felder akzeptieren keine leeren Zeichenfolgen. Wenn Sie also die Felder „IntegerField“ und „DateTimeField“ leer festlegen, müssen Sie „Blank“ und „Null“ auf „True“ setzen.

Wenn Sie das BooleanField auf leer setzen möchten, können Sie das Feld vom Typ NullBooleanField auswählen.

max_length

Legt die maximale Länge für Felder vom Typ CharField fest.

choices

choices besteht aus einer Folge (Liste oder Tupel) von 2-Tupeln als Feld. Das erste Element des 2-Tupels wird in der Datenbank gespeichert und das zweite Element kann mit der Methode get_FOO_display abgerufen werden.

>>>p=Person(name='Sam',gender=1)
>>>p.save()
>>>p .gender
1
>>>p.get_gender_display()
u'Male'

Wenn es zu viele Optionen gibt, ist es am besten, die Verwendung von ForiegnKey in Betracht zu ziehen .

Standard

Legen Sie den Standardwert für das Feld fest.

Der Standardwert kann kein veränderbares Objekt (Modellinstanz, Liste, Sammlung usw.) sein. Als Referenz auf dieselbe Instanz wird das Objekt in allen neuen Modellinstanzen als Standardwert verwendet. Kapseln Sie stattdessen die gewünschten Standardwerte in einem aufrufbaren Objekt. Wenn Sie beispielsweise ein benutzerdefiniertes JSONField haben und eines als Standardwörterbuch angeben möchten, verwenden Sie einen Lambda-Ausdruck wie folgt:

contact_info = JSONField("ContactInfo", default=lambda:{"email": " to1@example.com"})

verbose_name

Legen Sie den Anzeigenamen dieses Felds auf der Admin-Oberfläche fest.

unique

auf True gesetzt ist, muss dieses Feld in der Datenbank eindeutig sein.

>>>p=Person(name='Sam',gender=1)
>>>p.save()
>>>p =Person(name='Sam',gender=2)
>>>p.save()
IntergrityError: Spaltenname ist nicht eindeutig

PRimary_key

Wenn es auf True gesetzt ist, wird dieses Feld zum Primärschlüssel des Modells. Unter normalen Umständen fügt Django dem Modell automatisch ein IntegerField namens id als Primärschlüssel hinzu.

Das Obige ist der Inhalt des Django-Dokuments – Modellfeldoptionen (FieldOptions). Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn