【发布时间】:2023-03-19 10:05:01
【问题描述】:
我正在尝试从表单中的模块外键获取模块代码,并使用 HttpResponseRedirect 显示属于它的帖子,但出现错误: “str”对象没有属性“code”。我该如何解决这个问题?
追溯:
response = self.process_exception_by_middleware(e, request) ...
▶ Local vars
response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▼ Local vars
Variable Value
request <WSGIRequest: POST '/forum/'>
self <django.core.handlers.wsgi.WSGIHandler object at 0x03A88970>
wrapped_callback <function forum_modules at 0x038DF618>
callback <function forum_modules at 0x038DF618>
resolver_match ResolverMatch(func=forum.views.forum_modules, args=(), kwargs={}, url_name=forum_modules, app_names=[], namespaces=['forum'])
resolver <RegexURLResolver 'mysite.urls' (None:None) ^/>
callback_args ()
response None
middleware_method <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x03AAAFD0>>
callback_kwargs {}
urlconf 'mysite.urls'
response_is_rendered False
code = module.code ...
▼ Local vars
Variable Value
module 'CA'
request <WSGIRequest: POST '/forum/'>
我改了以下
module = request.POST.get('module')
code = module.code
到:module_id = request.POST.get('module')
因为它包含模块的代码。但我现在收到此错误。
Reverse for 'forum_modules' with arguments '()' and keyword arguments '{'module_id': None}' not found. 0 pattern(s) tried: []
【问题讨论】:
-
请给错误回溯
-
您已从
request.POST获取字符串module。要从该字符串转到Module对象,您必须进行查找,例如Module.objects.get(...)。我们不能说查找应该是什么,因为你还没有说module的值是什么。是主键、代码还是其他? -
module 是 Post 中的外键。它具有主键作为代码。但是当我在表单中使用模块时,我会得到一个模块标题列表的下拉列表。我需要重定向代码。
标签: python django url httpresponse url-parameters