2016-08-09 10 views
-1

Ich bin neu bei Python und Django und ich hatte keine Ahnung, wie ich meine Frage verkürzen sollte. Mein Problem ist, ich mache ein Modell in Django. Ich habe einen Klassenbenutzer gemacht. In dieser Klasse habe ich einen Charaktertypen-Namen, eine Integer-Typ-ID und ein Integer-Typ-Alter. Ich möchte ein Feld, in dem Benutzer nur aus einigen vordefinierten Eingaben wie Abschnitt A, B oder C auswählen können. Da kann ich problemlos Formularklasse verwenden, um ein Formular auf einer HTML-Seite ohne Codierung zu rendern. Ich weiß, dass ich ein Charfield verwenden kann, um A, B oder C zu speichern, aber gibt es eine Möglichkeit, das zu tun, was ich will?Wie man ein Feld in der Datenbank in Django macht, das nur wenige vordefinierte Eingaben aus der Dropdown-Liste benötigt

Antwort

1

Sie möchten wahrscheinlich das Attribut Field.choices in Ihrer Modellklasse verwenden. Bitte besuchen Sie den Link für genauere Erklärungen & Beispiele.

Field.choices

Ein iterable (zB eine Liste oder Tupel), die aus sich von Iterables von genau zwei Elemente (zB [(A, B), (A, B), ... ]) als Auswahl für dieses Feld zu verwenden. Wenn dies angegeben wird, ist das Standardformular-Widget ein Auswahlfeld mit diesen Auswahlmöglichkeiten anstelle des Standard-Textfelds.

So könnte man es so in Ihrer Modell-Klasse verwenden:

class myClass(models.Model): 
    AVAILABLE_CHOICES = (
     ('a', 'Section A'), 
     ('b', 'Section B'), 
     ('c', 'Section C'), 
    ) 

    section = models.CharField(max_length=10, choices=AVAILABLE_CHOICES, default='a') 
    ... 

Das erste Element in jedem Tupel der Istwert auf dem Modell festgelegt werden, und das zweite Element ist die für Menschen lesbarer Name.