栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

以Django形式获取请求数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

以Django形式获取请求数据

正如ars和Diarmuid所指出的那样,你可以传递

request.user
你的表单,并将其用于验证电子邮件。但是,Diarmuid的代码是错误的。该代码应实际读取:

from django import formsclass UserForm(forms.Form):    email_address = forms.EmailField(widget = forms.TextInput(attrs = {'class':'required'}))    def __init__(self, *args, **kwargs):        self.user = kwargs.pop('user', None)        super(UserForm, self).__init__(*args, **kwargs)    def clean_email_address(self):        email = self.cleaned_data.get('email_address')        if self.user and self.user.email == email: return email        if UserProfile.objects.filter(email=email).count(): raise forms.ValidationError(u'That email address already exists.')        return email

然后,在你看来,可以这样使用它:

def someview(request):    if request.method == 'POST':        form = UserForm(request.POST, user=request.user)        if form.is_valid(): # Do something with the data pass    else:        form = UserForm(user=request.user)    # Rest of your view follows

请注意,你应该将request.POST作为关键字参数传递,因为构造函数希望将“ user”作为第一个位置参数。

这样,你需要将其

user
作为关键字参数传递。你可以将其
request.POST
作为位置参数或关键字参数(通过
data=request.POST
)传递。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号