Dajaxice 表单验证:“unicode 对象没有属性获取”(jquery 序列化)
Posted
技术标签:
【中文标题】Dajaxice 表单验证:“unicode 对象没有属性获取”(jquery 序列化)【英文标题】:Dajaxice form validation: "unicode object has no attribute get" (jquery serialize) 【发布时间】:2011-12-02 02:32:38 【问题描述】:我对 dajax 和 jquery 有一个大问题:我正在尝试使用 dajax 保存用户的电子邮件,但是当调用 form.is_valid() 时我不断收到此错误
"unicode" object has no attribute "get"
我认为这是因为我在这个函数中使用了 jquery 的 serialize() 方法:
function send_form()
data = $('#subscribe').serialize(true);
data = decodeURIComponent(data);
Dajaxice.tothego_frontend.sito_maynard.subscribe(Dajax.process,'form':data);
subscribe是我的验证+注册方式,里面也包含is_valid()
据我了解,发生错误是因为我试图在字符串上调用 is_valid,但我看不到其他方式来序列化我的表单。此外,在dajaxice example page 上,验证工作正常。我的代码几乎相同,只是在 is_valid() 调用之后我执行了不同的操作。
拜托,我真的需要一些帮助,从昨天开始一直在尝试一切 谢谢!
编辑:here's the stacktrace
这是表单代码:
class SubscriptionForm(forms.Form):
email = forms.EmailField()
what_sub = forms.CharField()
where_sub = forms.CharField()
url_sub = forms.CharField()
正如我在开头所说的那样,与 dajaxice 的示例相同
【问题讨论】:
您的表单中出现错误,因此请发布。回溯:它的存在是有原因的,以帮助诊断问题。发布它。 你去。将表单绑定到 request.POST 不会引发异常,但值是空的(我仍然想了解为什么我无法使其工作) 【参考方案1】:我通过改变来修复它
$('#subscribe').serialize(true)
进入
$('#subscribe').serializeObject(true)
我坚持认为,问题在于序列化创建的结构,这对 django 表单验证不利
【讨论】:
我对答案投了赞成票,但也想添加注释。您需要一个 jQuery 插件才能使 serializeObject 工作。我以为它在 jQuery 中,但很快发现它不是。 (尽管它在最初的帖子中已链接,但我认为将其作为答案的一部分很重要)。我用danheberden.com/jquery-plugin-serializeobject-2011-04-01以上是关于Dajaxice 表单验证:“unicode 对象没有属性获取”(jquery 序列化)的主要内容,如果未能解决你的问题,请参考以下文章