2010-07-22 2 views
0

auth 앱의 Django 사용자 및 그룹 모델에서 get_absolute_url 메소드를 무시하고 싶습니다. 나의 첫 생각Django에서 프록시 모델을 통해 관련 프록시 모델에 올바르게 액세스하는 방법

프록시 모델을 정의했다, 그러나 나는 usuario.groups의 요소가 Group 대신 Grupo의 인스턴스이었다 것으로 나타났습니다 그리고 그것은 또한 grupo.user_set 경우 동일 일어났다. 그래서 프록시 모델 조금

class Usuario(User): 
    class Meta: 
     proxy = True 

    @models.permalink 
    def get_absolute_url(self): 
     return ('ver_usuario', [self.id]) 

    @property 
    def grupos(self): 
     return Grupo.objects.filter(user=self.pk) 

    @grupos.setter 
    def grupos(self, valor): 
     self.groups = valor 


class Grupo(Group): 
    class Meta: 
     proxy = True 

    @models.permalink 
    def get_absolute_url(self): 
     return ('ver_grupo', [self.id]) 

    @property 
    def usuarios(self): 
     return Usuario.objects.filter(groups=self.pk) 

    @usuarios.setter 
    def usuarios(self, valor): 
     self.user_set = valor 

을 확대 그러나 나는 RelatedManager 방법 grupo.usuarios.create(username='test_usuario')가 사용자를 만들기는하지만 그룹과 연관되지 않습니다보고 grupo.user_setManyRelatedManagergrupo.usuarios이입니다 때문입니다 QuerySet. 그래서 어쩌면 특별한 ManyRelatedManager을 만들 수도 있습니다. 그러나이 시점에서 나는 이것이 불필요하게 복잡해지고 있다고 느낍니다.

get_absolute_url을 대체하고자하므로 템플릿에 url 태그 만 사용합니다. 그러나 다른 방법을 추가하고 싶다면 어떻게해야합니까?

+1

젠장, 아냐, 모국어로 코드를 작성하는 것은 정말 좋은 생각이다. 영어에 능숙 해 보이므로 오늘날의 언어를 유창하게 지키는 것이 좋습니다. – gruszczy

+0

음,이 프로젝트는 지역 사회를 대상으로하며 스페인어 환경에서만 사용하고 스페인어로 검토하기 때문에 스페인어 이름을 사용하는 것이 바람직하다고 생각합니다. 이 예제에서는 코드 예제에서 변수 이름을 번역했지만 코드가 의미하는 바를 아는 것은 매우 단순한 것처럼 보였습니다. – naw

답변

0

ABSOLUTE_URL_OVERIDES 설정을 사용하여 설치 당 get_absolute_url을 무시할 수 있습니다.

+0

그것은 사용자를 위해 작동하지만 그룹은 그것을 대체 할 수없는 get_absolute_url 메소드를 가지고 있지 않습니다. – naw

관련 문제