我需要一个嵌套的 Django admin inline,可以将日期字段内联到另一个内联中,如下所示。
我有以下模型:
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模型作为内联模型包含在证书管理的内联部分中。
有任何想法吗?
changeform_link
放在CertificateLinkInline
中,这可能是更好的位置,因为它是Django管理特定的。请注意,这样做时,应使用instance.id
而不是self.id
来访问模型的实例。请参见 https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields - gitaarikshow_change_link
是由Django 1.8于2015年4月1日发布时引入的。虽然比我的答案晚了一年,但是是目前的一行代码等价形式。 :) - Danny W. Adairshow_change_link = True
更新答案,对于访问者和新手来说将非常有帮助,即使已经在评论中注意到了。当然,您不必这样做,但这会非常友好。 - Ramon K.