2013-09-02 7 views
2

임, 장고 등록 앱을 이해하려고 시도 중입니다. 이제 활성화 키가있는 사용자에게 전자 메일을 보낼 수 있습니다. 내가 알아낼 수없는 것은 사용자가 이메일에서 링크를 클릭 할 때 활성화 키를 다시 서버로 보내는 방법입니다.전자 메일에서 활성화 데이터를 django 서버로 다시 보냄을위한 코드

class AbstractEmailUser(AbstractBaseUser, PermissionsMixin): 
     ..... 
     ..... 
    def send_activation_email(self, email): 
    email = email 
    ctx_dict = { 'activation_key' : self.activation_key, 
      'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS, 
                   } 

    subject = render_to_string('activation_email_subject.txt', ctx_dict) 
    subject = ''.join(subject.splitlines()) 
    message = render_to_string('activation_email.txt', ctx_dict) 

    send_mail(subject, message, 'gccFishing.com', [email], fail_silently = False) 

    def activate(self, activation_key): 
    if SHA1_RE.search(activation_key): 
     try: 
     self.get(activation_key = activation_key) 
     except: 
     self.model.DoesNotExist 
     return False 
     if not self.activation_key_expired(): 
     self.is_active = True 
     self.activation_key = self.model.ACTIVATED 
     self.save() 
     return self 
    return False 

activation_keyactivate method를 호출하는 링크를 만들기위한 activation_email.txt 내부에 어떤 코드를 가야하나요? 아니면 더 좋은 방법이 있습니까?

도움이 될 것입니다.

 
http://{{ site.domain }}{% url registration_activate activation_key %} 

을 또는 다른 사이트의 DNS와 site.domain 변경 : 감사

답변

1

당신이 사용하는 경우 사이트가 응용 프로그램을 장고 이메일에서이 같은 것을보십시오. 당신의

내가 기억한다면, 장고 등록은 이미 템플릿에 activation_email.txt 예제를 포함하고 있습니다.

당신이 당신의 사용자 클래스의 활성화 로그인을 넣어해야한다고 생각하지 않는다

업데이트. URL 템플릿 태그에보기를 전달해야하므로 {% url user.registration_activate activation_key %}을 할 수 없습니다. 보기 기능 (또는 CBV) 없이는 링크를 만들 수 없습니다.

당신이해야 할 일은 activation_key에 대한 프로필을 검색하고 활성화하는보기를 만드는 것입니다. django-registration/registration/backends/default/views.py의 ActivationView 메소드를 확인하십시오. 앱에 사용자 지정 논리를 구현하려면

단지 ActivationView sublclass 대신 기본 (장고 등록/등록/백엔드/기본/urls.py)의 urls.py에서 클래스를 사용 url(r'^activate/(?P<activation_key>\w+)/$', ActivationView.as_view(), name='registration_activate'),

+0

나는 장고 등록을 이미 확인했지만 템플릿이 없으며 행운도 찾아 보려고했다. 여러분의 대답은 registration_activate가 함수 기반 뷰일 경우 작동 할 것입니다. 그러나 실제로는이 메소드가 User 객체의 메소드이고, {% url user.registration_activate activation_key %}와 같은 것을하고 싶습니다. 어떤 아이디어? –