Я хочу создать представление в панели администратора для тестовой программы, которая регистрирует книги, издателей и авторов (как на 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
Что я хочу сделать, так это изменить модель Книги, указав имя_имя любого автора и показать это с помощью 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',)
Насколько я понимаю, у вас не может быть двух ForeignKeys в одной модели.Может ли кто-нибудь дать мне пример того, как это сделать?
Я пробовал множество разных вещей, и это меня бесило весь день.Я довольно новичок в Python / Django.
Просто чтобы прояснить ситуацию - я просто хотел бы, чтобы имя / фамилия автора (ов) появлялась рядом с названием книги и именем издателя.
Спасибо