我想知道,如何只顯示'code_key'長度爲10個字符的記錄?如何按字符串長度過濾django管理界面中的數據(queryset)?
目前如果我使用'qs = Code.objects.filter(code_key。len()= 10)'返回一個錯誤。
在此先感謝。
admin.py
class CodeAdmin(admin.ModelAdmin):
fields = ['code_key','redemption_date','user','movie']
#
list_display = ('code_key','redemption_date','user','movie')
#
search_fields = ('code_key','user__email','movie__title')
def queryset(self, request):
"""
Filter the objects displayed in the change_list
"""
qs = super(CodeAdmin, self).queryset(request)
return qs
def changelist_view(self, request, extra_context=None):
my_context = {
'total': 'some value query',
}
return super(CodeAdmin, self).changelist_view(request,extra_context=my_context)
models.py
class Code(models.Model):
id = models.AutoField(primary_key=True)
code_key = models.CharField(max_length=20,unique=True)
redemption_date = models.DateTimeField(null=True, blank=True)
user = models.ForeignKey(User, blank=True, null=True)
movie = models.ForeignKey(Movie, blank=True, null=True)
# ...
def display_record(self):
return (self.code_key.__len__() == 10)
# ...
def __unicode__(self):
return self.code_key
謝謝!它的工作原理:) – ipegasus 2012-07-26 01:23:53
只要意識到這是數據庫特定的。 .extra()直接修改sql。 https://docs.djangoproject.com/en/dev/ref/models/querysets/#extra – 2012-07-26 01:25:54