gpt4 book ai didi

python - Django Admin 嵌套内联

转载 作者:行者123 更新时间:2023-11-28 19:34:37 26 4
gpt4 key购买 nike

我需要一个嵌套的 django 管理内联,我可以将日期字段内联包含在另一个内联中,如下所示。

我有以下模型:

class Person(models.Model):
name = models.CharField(max_length=200)
id_no = models.IntegerField()

class Certificate(models.Model):
cerfificate_no = models.CharField(max_length=200)
certificate_date = models.DateField(max_length=100)
person = models.ForeignKey(Person)
training = models.CharField(max_length=200)

class Training_Date(models.Model):
date = models.DateField()
certificate = models.ForeignKey(Certificate)

还有,下面的管理员:

class CertificateInline(admin.StackedInline):
model = Certificate

class PersonAdmin(admin.ModelAdmin):
inlines = [CertificateInline,]
admin.site.register(Person,PersonAdmin)

但是,我需要将 Training_Date 模型作为内联包含在内,这是内联证书管理的一部分。

有什么想法吗?

最佳答案

https://code.djangoproject.com/ticket/9025 有一些变化最近,但我不会屏住呼吸。

解决此问题的一种常见方法是通过为同一模型同时使用 ModelAdmin 和 Inline 来链接到第一级和第二级(或第二级和第三级)之间的管理员:

Certificate 一个带有 TrainingDate 作为内联的 ModelAdmin。为 CertificateInline 设置 show_change_link = True,以便您可以单击内联以转到其 ModelAdmin 更改表单。

管理员.py:

# Certificate change form has training dates as inline

class TrainingDateInline(admin.StackedInline):
model = TrainingDate

class CertificateAdmin(admin.ModelAdmin):
inlines = [TrainingDateInline,]
admin.site.register(Certificate ,CertificateAdmin)

# Person has Certificates inline but rather
# than nesting inlines (not possible), shows a link to
# its own ModelAdmin's change form, for accessing TrainingDates:

class CertificateLinkInline(admin.TabularInline):
model = Certificate
# Whichever fields you want: (I usually use only a couple
# needed to identify the entry)
fields = ('cerfificate_no', 'certificate_date')
# Django 1.8 introduced this, no need to make your own link
show_change_link = True

class PersonAdmin(admin.ModelAdmin):
inlines = [CertificateLinkInline,]
admin.site.register(Person, PersonAdmin)

关于python - Django Admin 嵌套内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14308050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com