是否可以在表单类中获取request.user数据?我想清理一个电子邮件地址以确保它是唯一的,但是如果它是当前用户的电子邮件地址,则它应该通过。
这是我目前拥有的东西,非常适合创建新用户,但是如果我要编辑用户,则会遇到他们的电子邮件无法验证的问题,因为它已经被采用。如果我可以使用request.user.email检查这是他们的电子邮件,则可以解决我的问题,但是我不确定该怎么做。
class editUserForm(forms.Form):
email_address = forms.EmailField(widget=forms.TextInput(attrs={'class':'required'}))
def clean_email_address(self):
this_email = self.cleaned_data['email_address']
test = UserProfiles.objects.filter(email = this_email)
if len(test)>0:
raise ValidationError("A user with that email already exists.")
else:
return this_email
正如ars和Diarmuid所指出的那样,你可以传递request.user
你的表单,并将其用于验证电子邮件。但是,Diarmuid的代码是错误的。该代码应实际读取:
from django import forms
class 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
)传递。
问题内容: 我正在将带有JSON正文的POST请求发送到Django服务器(相当标准)。在服务器上,我需要使用进行解码。 问题是如何获取字符串格式的请求正文? 我目前有以下代码: 但是,这给出了一个错误。 如何以正确的编码将请求的主体作为字符串检索? 问题答案: 请求主体,是一个字节字符串。在Python 3中,将仅接受unicode字符串,因此您必须先进行解码,然后再将其传递给。 在Python
有什么方法可以方便地将参数/查询作为映射传递 http.get只接受url和标头,不像python get中的有效负载字典可以用作参数。我想简单地实现它,比如: 或任何没有字符串操作的其他方法。 更新:我尝试使用构造函数。但这会带来错误。我需要通过的地图是 错误: 类型“int”不是类型“Iterable”的子类型 到目前为止,我只能通过将int 298改为字符串'298'来实现。
原理 对于POST请求的处理,koa2没有封装获取参数的方法,需要通过解析上下文context中的原生node.js请求对象req,将POST表单数据解析成query string(例如:a=1&b=2&c=3),再将query string 解析成JSON格式(例如:{"a":"1", "b":"2", "c":"3"}) 注意:ctx.request是context经过封装的请求对象,ctx.
使用方法 在koa中,获取GET请求数据源头是koa中request对象中的query方法或querystring方法,query返回是格式化好的参数对象,querystring返回的是请求字符串,由于ctx对request的API有直接引用的方式,所以获取GET请求数据有两个途径。 1.是从上下文中直接获取 请求对象ctx.query,返回如 { a:1, b:2 } 请求字符串 ctx.que
问题内容: 我有以下django模板(将http:// IP / admin / start /分配给一个名为view的假设视图): 是视图中引用的Django模型的。每当单击“开始”提交输入时,我都希望“开始”视图在返回渲染页面之前使用函数中的数据。如何将POST(在本例中为隐藏输入)中发布的信息收集到Python变量中? 问题答案: 另外,你的隐藏字段还需要一个可靠的名称,然后是一个值: 然后
3.1 GET请求数据获取 3.2 POST请求数据获取 3.3 koa-bodyparser中间件