我有一个报名表,提交时不工作.
我得到这个错误:
- 后面的reverse()参数必须是Map,而不是str**
这是我的看法:
def inscription(request, seance_id):
seance = get_object_or_404(Variant, id=seance_id)
inscription_config = {'form_class': InscriptionForm,
'extra_context': {'seance': seance}}
return create_object(request, **inscription_config)
我的表单:
class InscriptionForm(forms.ModelForm):
class Meta:
model = Inscription
def clean(self):
cleaned_data = self.cleaned_data
email = cleaned_data.get("mail")
mail_confirmation = cleaned_data.get("mail_confirmation")
if email != mail_confirmation:
raise forms.ValidationError("Les deux adresses mails doivent correspondre")
return cleaned_data
触发错误的似乎是return语句中的inscription_config
,但我不知道为什么。
- 编辑**
环境:
申请方法:POST请求URL:http://127.0.0.1:8039/formations/inscription/1/ Django版本:1.2.5 Python版本:2.7.2安装的应用程序:["django.contrib.auth'、" django.contrib.comment'、"django.contrib.contenttypes"、"django.contrib.sessions"、"django.contrib.sites"、"django.contrib.messages"、"django.contrib.admin"、"确认编辑器"、"常量"、"常量后端数据库"、"自定义平面页面"、"django扩展"、"django移动"、"django xmlrpc"、"简易缩略图"、"gestion格式"、"文件上载器"、"less"、"mppt"、"contact"、"newsletter"、"pagination"、"south"、"sentry"、"sentry. client"、"索引器"、"分页"、"内容管理员"、"画廊"]已安装的中间件:("恼人的中间件静态服务"、"django中间件通用通用中间件"、"django贡献会话中间件会话中间件"、"django中间件csrf视图中间件"、"django贡献验证中间件"、"django贡献消息中间件消息中间件"、"分页中间件分页中间件")
追溯:
文件"/usr/local/lib/python2.7/dist-packages/django/core/handlers/www.example.com "在获取响应100中。响应=回调(请求,* 回调参数,**回调kwargs)文件"/home/anass/项目/c139_fc_finance/fc_finance/gestion_formations/视图/www.example.com"在题记24中。表单类=题记表单文件"/usr/local/lib/python2.7/dist-packages/django/视图/通用/base.py(*(参数+更多参数),**dict(参数,*更多参数))get_absolute_url 969中的文件"/usr/local/lib/python2.7/dist-packages/django/db/models/www.example.com "。返回设置。 carts.py(self, args,kwargs)文件"/usr/local/lib/python2.7/dist-packages/django/db/models/init. py "在内部32中。返回反向(位[0],无, 位[1:3])文件"/usr/local/lib/python2.7/dist-packages/django/core/www.example.com "反向351. * 参数,**kwargs)))functional.py" in _curried 55. return _curried_func((args+moreargs),**dict(kwargs,**morekwargs)) File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in get_absolute_url 969. return settings.ABSOLUTE_URL_OVERRIDES.get('%s.%s' % (opts.app_label, opts.module_name), func)(self, *args,**kwargs) File "/usr/local/lib/python2.7/dist-packages/django/db/models/init.py" in inner 32. return reverse(bits[0], None, *bits[1:3]) File "/usr/local/lib/python2.7/dist-packages/django/core/ www.example.com " in reverse 351. *args,*kwargs)))
异常类型:类型错误位于/formations/intration/1/异常值: * 后面的reverse()参数必须是Map,而不是字符串
2条答案
按热度按时间3duebb1j1#
我试着回答,因为我也有同样的问题,但没有在网上找到答案。
我认为这个问题的根源是一个错误的
get_absolute_url(...)
方法,比如你这样写:然后它会引发异常
reverse() argument after ** must be a mapping, not str
。通过删除@models.permalink
装饰器来修复它,如下所示:或者可替换地保持装饰器并修改主体,如下所述:
不过,我认为后者已经过时了。
ljsrvy3e2#
淘气逗号
应该是