2016-07-14 13 views
1

Wie erhalte ich alle Felder, die für die Erstellung eines Modells benötigt werden?
(die gleichen wie django Migrationen vor dem Ausführen von Migrationen überprüfen?)Django, erhalten alle erforderlichen Felder?

+0

Sie können [ 'get_fields()'] (https://docs.djangoproject.com/en/1.9/ref/models/meta/#django.db. models.options.Options.get_fields), um über alle Felder zu iterieren und zu prüfen, welche benötigt werden. – solarissmoke

+0

@solarissmoke: Wie überprüfen Sie? n – eugene

Antwort

5

Sie die get_fields() Methode auf der Meta Klasse-Modell verwenden können:

fields = MyModel._meta.get_fields() 
required_fields = [] 

# Required means `blank` is False 
for f in fields: 
    # Note - if the field doesn't have a `blank` attribute it is probably 
    # a ManyToOne relation (reverse foreign key), which you probably want to ignore. 
    if hasattr(f, 'blank') and f.blank == False: 
     required_fields.append(f) 
0

Die Antwort über mehr umgesetzt werden kann leicht prägnant Liste Verständnis mit und getattr() mit einem Standard von False:

required_fields = [f for f in MyModel._meta.get_fields() if not getattr(f, 'blank', False) is True] 
Verwandte Themen