Pet*_*ung 1 django django-models django-admin
现在我可以在使用 Click_Data 模型时使用 list_display() 来显示列词和click_times。代码如下:
# models.py
class Click_Data(models.Model):
word = models.CharField(max_length=255)
click_times = models.IntegerField(default=0)
class Meta:
ordering = ('word',)
def __unicode__(self):
return self.word
# admin.py
class Click_DataAdmin(admin.ModelAdmin):
fieldsets = [
('Word', {'fields': ['word']}),
('Number', {'fields': ['click_times']}),
]
list_display = ('word', 'click_times')
Run Code Online (Sandbox Code Playgroud)
但是我不知道在使用User_Data 模型(如下)时如何使用 list_display( ) 来显示列词和click_times。
# models.py
class User_Data(models.Model):
user = models.ForeignKey(User)
click_data = models.ForeignKey(Click_Data)
class Meta:
ordering = ('user',)
def __unicode__(self):
return unicode(self.user)
# admin.py
class User_DataAdmin(admin.ModelAdmin):
fieldsets = [
('User', {'fields': ['user']}),
('Word', {'fields': ['click_data']}),
]
list_display = ('user', 'click_data')
Run Code Online (Sandbox Code Playgroud)
我想说明的不仅是“字”中'click_data'也“click_times”,我怎么能做到这一点?
Pau*_*soa 10
尝试这个:
class User_DataAdmin(admin.ModelAdmin):
...
list_display = (..., 'get_click_times', 'get_word')
def get_click_times(self, obj):
return obj.click_data.click_times
get_click_times.short_description = 'Click Times'
def get_word(self, obj):
return obj.click_data.word
get_word.short_description = 'Word'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3991 次 |
| 最近记录: |