我有一個模型發佈其數據,我想顯示在模型最喜歡的管理員。Django無法以更改形式顯示model.id?
Post模型:
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)
如果我使用的代碼,例如,當我嘗試添加通過其管理員收藏我會得到followi NG錯誤:
Caught TypeError while rendering: coercing to Unicode: need string or buffer, int found
行,所以它不喜歡來顯示整數,所以我想我只是顯示自一Charfield的暱稱。我取消了FavoriteAdmin()中的第一行來調用FavoriteModel.get_post_nickname()的註釋。現在,我得到以下錯誤:
'FavoriteAdmin.fields' refers to field 'get_post' that is missing from the form.
我該如何解決既#1和#2?是不是可以在字段()中調用方法?我認爲這是因爲list_display()接受一個方法。
我認爲這裏有一個錯誤。我絕對寫了'2。 OK,所以它不喜歡顯示一個整數,但不知何故數字「2」顯示爲「1」,因此有兩個數字「1」。奇怪的。 – rabbid 2011-04-15 03:06:38
在list_display中,什麼是get_post_id? – 2011-04-15 03:43:46
哎呀抱歉!我已將其更改爲「發佈」,但未正確複製粘貼。我的錯。 – rabbid 2011-04-15 03:53:10