我如何从外键预先填充slug?以下是我的一些模型的设置方法:
Class Title(models.Model):
title = models.CharField(max_length=256)
slug = models.SlugField()
class Issue(models.Model):
title = models.ForeignKey(Title)
number = models.IntegerField(help_text="Do not include the '#'.")
slug = models.SlugField()
admin.py:
class IssueAdmin (admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
admin.site.register(Issue, IssueAdmin)
问题预填充的是外键的ID,但我想我需要它预先填充外键的slug。我该怎么做呢?我正在使用Django 1.3。我已经检查了其他线程,但它们似乎是指几年前不再使用的Django版本。
我需要标题才能显示问题列表。到目前为止,它的确有效。您可以单击问题的链接以查看问题所在。
我觉得好像将标题重写为抽象类,Skidoosh不允许我查看对象的子集....
答案 0 :(得分:3)
如果您查看文档(http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.prepopulated_fields),它会说明您无法引用外键领域。
看着你的设计会不会更好:
class BaseModel(models.Model):
title = models.CharField(max_length=256)
slug = models.SlugField()
class Issue(BaseModel):
number = models.IntegerField(help_text="Do not include the '#'.")
class ComicBookSeries(BaseModel):
issues = models.ForeignKey(Issue)
您需要按顺序声明类!
希望有所帮助!