0

在我的Django應用程序中,我希望用戶能夠更改電子郵件地址。我見過StackOverflow的解決方案,將人們指向django-profiles。不幸的是,我不想使用完整的配置文件模塊來完成改變用戶電子郵件的小小壯舉。有沒有人看到這在任何地方實現在這種情況下,發送確認電子郵件的電子郵件地址驗證過程是必需的。在不使用django-profiles的情況下更改Django中的用戶電子郵件

我花了很多時間試圖找到一個可行的解決方案,但無濟於事。

乾杯。

回答

1

似乎有人確實寫了自己的。它允許用戶更改他們的電子郵件地址併發送確認電子郵件。

class UserInfoForm(forms.ModelForm): 
    email = forms.EmailField(required=True) 
    class Meta: 
     model = User 
     fields = ('email') 

,並得到了場錯誤:如果它的Django 1.4的一個新的要求,但我想湯姆的建議

django-emailchange

2

該電子郵件地址屬於用戶模型,因此不需要使用配置文件讓用戶更新其電子郵件。從只有電子郵件作爲字段的用戶模型創建一個model form,然後在您的視圖中提供該表單並處理它。喜歡的東西:

class UserInfoForm(forms.ModelForm): 
    email = forms.EmailField(required=True) 
    class Meta: 
     model = User 
     fields = ('email',) 

def my_view(request): 
    if request.POST: 
     user_form = UserInfoForm(request.POST, instance=request.user) 
     if user_form.is_valid(): 
      user_form.save() 
      return HttpResponseRedirect(reverse('form_success_screen')) 
    else: 
     user_form = UserInfoForm() 
    return render_to_response('my-template.html', {'user_form': user_form}, context_instance=RequestContext(request)) 

注意,如果形式是成功的,我返回HttpResponseRedirect用戶發送到另一個頁面。在這種情況下,我正在查找來自我的urls文件的命名網址。

+0

很抱歉,如果我似乎苛刻,但有你遇到它發送一個驗證郵件的一個片段。我對Python很好,但是我沒有在Django中實現類似的東西。不過謝謝你的幫忙。 – 2010-04-17 12:45:30

+0

嘗試django-email-confirmation:http://github.com/jtauber/django-email-confirmation/ – Tom 2010-04-17 14:34:55

0

不太清楚。你必須在每個領域後尾隨逗號(或者所以這是解決我的錯誤):

fields = ('email',) 

固定的問題

相關問題