【发布时间】:2010-05-18 23:39:36
【问题描述】:
我希望在管理面板中为一个记录书籍、出版商和作者的测试程序创建一个视图(如在 djangoproject.com 上)
我定义了以下两个模型。
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __unicode__(self):
return self.title
我想要做的是更改 Book 模型以引用任何作者的名字并使用 admin.AdminModels 显示它。
#Here is the admin model I've created.
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'publisher', 'publication_date') # Author would in here
list_filter = ('publication_date',)
date_hierarchy = 'publication_date'
ordering = ('-publication_date',)
fields = ('title', 'authors', 'publisher', 'publication_date')
filter_horizontal = ('authors',)
raw_id_fields = ('publisher',)
据我了解,同一模型中不能有两个 ForeignKey。谁能给我一个例子来说明如何做到这一点?
我尝试了很多不同的东西,一整天都让我发疯。我对 Python/Django 很陌生。
为了清楚起见 - 我只是希望作者的名字/姓氏出现在书名和出版商名称旁边。
谢谢
【问题讨论】:
-
不确定你的问题的答案,但“你不能在同一个模型中有两个 ForeignKeys”不是一个真实的陈述。我还认为您将外键与 __unicode__() 函数混淆了。
标签: django django-models django-admin