2014-04-06 3 views
1

기본 인증 모델을 변경하고 싶지 않습니다.장고 - 추가 사용자 지정 모델 메서드를 사용자에게

def update_first_name(self, first_name): 
    self.first_name = first_name 
    self.save() 

이 나쁜 예,하지만 난 그런 기능을 원하는 :

난 그냥 같이 사용자에 대해 추가 메소드를 추가 할. 이 항목은 추가로 사용해야하며 사용자가 사용할 수있는 다른 방법을 삭제해서는 안됩니다.

+0

내가 USERPROFILE 가서 거기에 내가 원하는 어떤 방법을 쓸 것을 의미한다. https://docs.djangoproject.com/en/1.4/topics/auth/#storing-additional-information-about-users – doniyor

답변

2

Userproxy model을 만들고 거기에 메서드를 추가하십시오. User 클래스에 새로운 기능을 추가하려면

class ProxyUser(User): 
    def do_something(self, ...): 
    ... 

    class Meta: 
    proxy = True 
+0

그런 다음 어떻게 사용자 개체를 먼저 가져야합니까, User.objects.get 또는 ProxyUser.objects.get ?? 나는 User.objects.get을 사용하고 싶습니다. 왜냐하면 User.objetcs.get이 이미 사용되고 있고 모두 변경하고 싶지 않은 프로젝트가있을 수 있기 때문입니다. – user2349115

1

는 프록시 모델을 정의하는 것입니다.
그것은 creating a proxy for the original model.

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

     def update_first_name(self, first_name): 
      self.first_name = first_name 
      self.save() 
관련 문제