2016-06-26 35 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 
相关问题