2010-11-22 8 views
3

일부 집계가있는 경우 annotate를 사용하여 수행 할 수 있지만 사용자 정의 메서드를 기반으로 구현할 수는 없다는 것을 알고 있습니다. 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') 

답변

1

Django 관리자는 성능을 위해 db 쿼리만을 기준으로 정렬합니다.

그래서하는 주석 필드에 정렬하려면, 당신은 당신의 주석 필드로 django.contrib.admin.ModelAdmin.get_queryset을 무시해야하고 Modeloder_byclass Meta에서 필드 이름을 포함합니다.

+1

주석을 사용하여 메서드를 호출하는 방법을 모르므로 코드 예제를 제공 할 수 있습니까? (호출 할 개체가 없습니다) –

관련 문제