Django Admin - 按自定义方法排序
我知道如果您有一些聚合,它可以使用注释完成,但我无法基于自定义方法实现它。 Bellow是我的模型的代码,我希望能够通过_is_registered对结果进行排序。Django Admin - 按自定义方法排序
class Subscribers(models.Model): email = models.EmailField(_('E-mail'))
want_newsletter = models.BooleanField(default = False)
def get_user(self):
user = User.objects.filter(email= self.email)
if user.count()>0:
return user[0]
return None
def _is_registered(self):
user = self.get_user()
if user:
return _('Yes')
return _('No')
回答:
Django admin仅基于db查询进行排序,出于性能考虑。
因此,为了进行排序上标注的字段,你有你的注释字段来覆盖django.contrib.admin.ModelAdmin.get_queryset
,包括在class Meta
为oder_by
的Model
是字段名。
以上是 Django Admin - 按自定义方法排序 的全部内容, 来源链接: utcz.com/qa/257457.html