У меня есть сообщение модели, данные которого я хотел бы отобразить в модели администратора Favorite.
Почтовая модель:
class Post(models.Model):
nickname = models.CharField(max_length=50, default="anonymous")
def __unicode__(self):
return self.id
Любимая модель:
class Favorite(models.Model):
user = models.ForeignKey(User, unique=False)
post = models.ForeignKey(Post, unique=False)
def __unicode__(self):
return self.user.username
def get_post_nickname(self):
return self.post.nickname
Любимый администратор:
class FavoriteAdmin(admin.ModelAdmin):
#fields = ('user', 'get_post_nickname')
list_display= ('user', 'post')
def save_model(self, request, obj, form, change):
obj.save()
admin.site.register(Favorite, FavoriteAdmin)
Если я использую код как таковой, когда я пытаюсь добавить Избранное через его Admin, я получаю следующую ошибку:
Печатная ошибка TypeError при рендеринге: приведение к Unicode: нужна строка или буфер, int найдено
ОК, поэтому он не любит отображать целое число, поэтому я подумал, что я просто выведу псевдоним, начиная с поля Char. Я раскомментировал первую строку в FavoriteAdmin (), чтобы вызвать FavoriteModel.get_post_nickname (). Теперь я получаю следующую ошибку:
«FavoriteAdmin.fields» относится к полю «get_post», которое отсутствует в форме.
Как я могу решить оба # 1 и # 2? Разве невозможно вызвать метод в fields ()? Я думал, что это будет, так как list_display () принимает метод.