Django admin';是一个';关系
我在Django方面有很多经验,但我对管理应用程序非常陌生(我们通常根据项目要求将所有内容构建到页面中) 但现在我正在做一个需要一些管理工作的项目,我被困在一个部分 假设我有数据库模型——个人、学生、教员 教师和学生都是一个人(可以说他们继承了这些属性)。如何在管理视图中显示此内容 因此,当有人单击添加学生时,他们只填写学生属性,还填写同一页面上的人物模型所需的属性。这可能吗 这是模型,也有教员,但和学生很相似Django admin';是一个';关系,django,django-admin,Django,Django Admin,我在Django方面有很多经验,但我对管理应用程序非常陌生(我们通常根据项目要求将所有内容构建到页面中) 但现在我正在做一个需要一些管理工作的项目,我被困在一个部分 假设我有数据库模型——个人、学生、教员 教师和学生都是一个人(可以说他们继承了这些属性)。如何在管理视图中显示此内容 因此,当有人单击添加学生时,他们只填写学生属性,还填写同一页面上的人物模型所需的属性。这可能吗 这是模型,也有教员,但和学生很相似 class Person(models.Model): last_name
class Person(models.Model):
last_name = models.CharField(max_length=50)
first_name = models.CharField(max_length=50)
mi = models.CharField(max_length=50)
phone = models.CharField(max_length=20)
cell = models.CharField(max_length=20)
class Student(models.Model):
year = models.CharField(max_length=10)
stud_id = models.IntegerField()
person = models.ForeignKey(Person)
#many to many
任何想法或进一步的问题都会很棒 这就是你的答案!
看看
以下是您需要的代码:
class StudentInline(admin.TabularInline):
model = Student
class PersonAdmin(admin.ModelAdmin):
inlines = [
StudentInline,
]
admin.site.register(Person,PersonAdmin)
这是你的答案!
看看
以下是您需要的代码:
class StudentInline(admin.TabularInline):
model = Student
class PersonAdmin(admin.ModelAdmin):
inlines = [
StudentInline,
]
admin.site.register(Person,PersonAdmin)
另一种方法是使用Django模型继承,如下所示:
class Person(models.Model):
last_name = models.CharField(max_length=50)
first_name = models.CharField(max_length=50)
mi = models.CharField(max_length=50)
phone = models.CharField(max_length=20)
cell = models.CharField(max_length=20)
class Student(Person):
year = models.CharField(max_length=10)
stud_id = models.IntegerField()
这样,在学生管理页面中,您将从Student
和Person
获取所有字段,而不使用内联线。Django还将自动处理两个表之间的ForeignKey
.另一种方法是使用Django模型继承,如下所示:
class Person(models.Model):
last_name = models.CharField(max_length=50)
first_name = models.CharField(max_length=50)
mi = models.CharField(max_length=50)
phone = models.CharField(max_length=20)
cell = models.CharField(max_length=20)
class Student(Person):
year = models.CharField(max_length=10)
stud_id = models.IntegerField()
这样,在学生管理页面中,您将从Student
和Person
获取所有字段,而不使用内联线。Django还将自动处理两个表之间的ForeignKey
.我试过了,但我得到了一个错误:没有外国钥匙来道歉。我错了!我是用一种不切实际的方式做的!现在就试试吧!很好,这似乎正是我所需要的。我试过了,但我得到了一个错误:没有外国钥匙来道歉。我错了!我是用一种不切实际的方式做的!现在就试试吧!太好了,这正是我所需要的。