2017-08-11 28 views
0

我想向'genre'類中添加一個名爲'count'的字段,使得count該類型的電影。 models.pyDjango管理員面板 - 在'list_display'小部件中添加不是models屬性的custome字段(不會更改models.py)

class genre(models.Model): 
     genre_name = models.CharField(max_length=20, verbose_name='Genre') 

    def __str__ (self): 
     return(self.genre_name) 

    class movie(models.Model): 

     movie_name = models.CharField(max_length=50, verbose_name='Movie Name') 
     movie_rating = models.IntegerField(default=1) 
     movie_genres = models.ManyToManyField(genre, verbose_name='Genre(s)') 
     added_by = models.CharField(max_length=20, blank=True) 
     email = models.EmailField(blank=True) 
     Date = models.DateTimeField(default=datetime.now) 

    def __str__ (self): 
     return(self.movie_name) 

admin.py

from __future__ import unicode_literals 
    from django.contrib import admin 
    from . models import movie, genre 
    from django import forms 

    class movieAdmin(admin.ModelAdmin): 

     list_display=('movie_name', 'movie_rating','Date') 
     search_fields=('movie_name',) 
     filter_horizontal=('movie_genres',) 
     list_filter=('Date',) 
     date_hierarchy='Date' 
     ordering=('-movie_name',) 
     fields=('movie_name','movie_rating') 

    admin.site.register(movie, movieAdmin) 
    admin.site.register(genre) 

我想補充計數場list_display

回答

0

寫的方法(在的ModelAdmin或模型本身)獲得所需的價值。然後將其添加到list_display中,如同模型的字段(不包含())

list_display = ('somefield', .. , 'myCountMethod',) 

    # in modelAdmin or model 
    def myCountMethod(self, ...): 
     # do some counts here 
     return display_value 
相關問題