2016-06-26 34 views
0

好吧之前,所以我有一個表格設置像這樣:充分利用在Django的ModelForm字段中的值驗證

class LeadForm(forms.ModelForm): 
    class Meta: 
     model = Lead 
     fields = ['email'] 

在我的意見,我想獲得用戶把進入該領域的文本在驗證它之前。

def index(request): 
    if request.method == 'POST': 
     lead_form = LeadForm(request.POST) 

     // This is the problem part 
     email = str(lead_form.fields['email']) 
     print email 
     if Lead.objects.get(email=email).exists(): 
      return HttpResponse('Already signed up') 

     if lead_form.is_valid(): 
      // Do something 
    else: 
     lead_form = LeadForm() 

    return render(request, 'myapp/index.html', { 
     'lead_form' : lead_form, 
    }) 

正如你所看到的,我想從電子郵件字段中的文本和驗證之前,我想先確認一下。當我打印的電子郵件,我得到這個在我的終端:

<django.forms.fields.EmailField object at 0x109c35d90> 

我要的是文本但是,因爲我想看看是否與電子郵件鉛的存在與否。我怎樣才能做到這一點?任何幫助將不勝感激!

回答

0

這是驗證。它應該以形式完成;您可以在LeadForm上定義一個clean_email方法來執行此操作。

要回答你的實際問題,你可以直接訪問request.POST['email']。但不要那樣做;在形式上做。

0

嘗試這樣,

email=request.POST.get('email') 
print email 
相關問題