由于大多数答案已经过时,我将尝试更新有关Django 2.2的信息
这里是您的应用程序 (帖子、博客、商店等)
1) 来自模型 链接: https://docs.djangoproject.com/en/stable/ref/models/meta/
from posts.model import BlogPost
all_fields = BlogPost._meta.fields
all_fields = BlogPost._meta.get_fields()
请注意:
all_fields=BlogPost._meta.get_fields()
还会有一些关系,例如:您无法在视图中显示的关系。
就像我的情况一样:
Organisation._meta.fields
(<django.db.models.fields.AutoField: id>, <django.db.models.fields.DateField: created>...
和
Organisation._meta.get_fields()
(<ManyToOneRel: crm.activity>, <django.db.models.fields.AutoField: id>, <django.db.models.fields.DateField: created>...
2) 例如
from posts.model import BlogPost
bp = BlogPost()
all_fields = bp._meta.fields
3) 从父模型继承
假设我们有一个名为Post的父模型,您想在列表中查看所有字段,并使父字段在编辑模式下只读。
from django.contrib import admin
from posts.model import BlogPost
@admin.register(BlogPost)
class BlogPost(admin.ModelAdmin):
all_fields = [f.name for f in Organisation._meta.fields]
parent_fields = BlogPost.get_deferred_fields(BlogPost)
list_display = all_fields
read_only = parent_fields