管理仪表板中的 Django 外键 select
Django Foreign Key select in admin dashboard
不太确定如何完成此操作。
我有一个 Post 模型,它引用了类别模型的外键。
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='feature_posts')
body = models.TextField("Body")
lead_in = models.CharField("Lead In", max_length=500, default='', blank=True)
is_featured = models.BooleanField("Is Featured?", default=False)
likes = models.IntegerField(default=0, blank=True)
views = models.IntegerField(default=0, blank=True)
category = models.ForeignKey('Category', null=True, blank=True)
class Category(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField()
parent = models.ForeignKey('self',blank=True, null=True ,related_name='children')
class Meta:
unique_together = ('slug', 'parent',)
verbose_name_plural = "categories"
一切都按预期工作得很好,除了管理仪表板中的这一点:
谁能告诉我避免这种情况的专业提示...?它可能是 Django 管理手册的第 1 行,但我一辈子都找不到第 1 行! :D
查看了模型、外键字段、管理等方面的 Django 1.11 管理文档,但没有成功。
N.B。可能值得注意的是我使用的是wagtail,如果有任何细微的差异
如果您可以在其他地方更改类别的表示:
class Category(models.Model):
# ...
def __str__(self): # what will be displayed in the admin
return self.name
否则使用Django admin - change ForeignKey display text中描述的解决方案。
不太确定如何完成此操作。
我有一个 Post 模型,它引用了类别模型的外键。
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='feature_posts')
body = models.TextField("Body")
lead_in = models.CharField("Lead In", max_length=500, default='', blank=True)
is_featured = models.BooleanField("Is Featured?", default=False)
likes = models.IntegerField(default=0, blank=True)
views = models.IntegerField(default=0, blank=True)
category = models.ForeignKey('Category', null=True, blank=True)
class Category(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField()
parent = models.ForeignKey('self',blank=True, null=True ,related_name='children')
class Meta:
unique_together = ('slug', 'parent',)
verbose_name_plural = "categories"
一切都按预期工作得很好,除了管理仪表板中的这一点:
谁能告诉我避免这种情况的专业提示...?它可能是 Django 管理手册的第 1 行,但我一辈子都找不到第 1 行! :D
查看了模型、外键字段、管理等方面的 Django 1.11 管理文档,但没有成功。
N.B。可能值得注意的是我使用的是wagtail,如果有任何细微的差异
如果您可以在其他地方更改类别的表示:
class Category(models.Model):
# ...
def __str__(self): # what will be displayed in the admin
return self.name
否则使用Django admin - change ForeignKey display text中描述的解决方案。