2017-12-17 1 views
0

I Django Ruhe Rahmen wurde mit und ich kam in repr() Funktiondjango Shell-plus: wie eine Modelldefinition von der Kommandozeile veiw

Als ich in der Django do shell

>> from articles.api.serializers import PostSerializer 
    print(repr(PostSerializer())) 

PostSerializer(): 
    id = IntegerField(label='ID', read_only=True) 
    publish_date = DateTimeField(format='%Y-%m-%d %H:%M UTC') 
    is_deleted = BooleanField(required=False) 
    title = CharField(max_length=256) 
    intro_image = ImageField(allow_null=True, max_length=100, required=False) 
    slug = SlugField(max_length=50) 
    task_id = CharField(read_only=True) 
    qa_bool = BooleanField(label='Allow Q&A', required=False) 

Angenommen, ich habe Modell Artikel. Ich habe versucht:

>> print(repr(Article)) 

<class 'articles.models.Article'> 

Ich möchte alle Felder mit ihren Eigenschaften von Shell sehen. Ist es möglich,

+1

Soweit ich weiß, das ist ein Merkmal von DRF ist, nicht Django selbst. Theoretisch könnten Sie eine generische Model-Vorlage mit der Methode '__repr __()' erstellen und dann von dieser Vorlage in Ihrer App erben, aber es scheint für mich eine Strecke zu sein. Ein anderer Weg wäre, einen externen Helfer zu haben, der das Modell als Parameter nimmt und die Felder ausgibt. Oder warten Sie vielleicht, bis Django dies nativ unterstützt (ich weiß nicht, ob sie das planen). – petr

Antwort

0

Sie _meta Api Djangos wie so verwenden können:

>>> Article._meta.get_fields() 
<<< { tuple with all fields and types } 
Verwandte Themen