Python &引用;类型错误:';模块';“对象不可编辑”;提交表单后,在呈现模板时

Python &引用;类型错误:';模块';“对象不可编辑”;提交表单后,在呈现模板时,python,django,django-views,django-templates,Python,Django,Django Views,Django Templates,我正在尝试制作一个拍卖应用程序,作为该应用程序的一部分,用户可以通过提交投标表格进行投标 在视图.py中: def列表页面(请求,列表id): listing\u selected=listing.objects.get(pk=listing\u id) form=BidForm() 出价=[] 获胜=失败 如果request.user.u经过身份验证: person=person.objects.filter(user=request.user).filter(watchlist=listin

我正在尝试制作一个拍卖应用程序,作为该应用程序的一部分,用户可以通过提交投标表格进行投标

视图.py中

def列表页面(请求,列表id):
listing\u selected=listing.objects.get(pk=listing\u id)
form=BidForm()
出价=[]
获胜=失败
如果request.user.u经过身份验证:
person=person.objects.filter(user=request.user).filter(watchlist=listing\u selected)
其他:
人=假
如果选择了清单\当前\投标:
bids=Bid.objects.filter(listing=listing\u selected)
如果清单_selected.current_bid.user==request.user:
获胜=正确
如果request.method==“POST”:
表单=投标表单(request.POST)
如果未对request.user.u进行身份验证:
#呈现带有错误消息的模板
如果form.is_有效():
投标=投标()
bid.user=request.user
bid.listing=已选择列表
bid.amount=表格.u数据['amount']
保存
消息。成功(请求“出价成功”。)
返回呈现(请求“拍卖/挂牌_page.html”,上下文={
“正在登录”:已选中“正在登录”,
“人”:人,
“投标数量”:len(投标)+1,
“赢”:赢,
“形式”:形式,
“消息”:消息
})
其他:
返回渲染(请求“拍卖/挂牌_page.html”{
“正在登录”:已选中“正在登录”,
“人”:人,
“投标数量”:len(投标),
“赢”:赢,
“形式”:形式
})
当我提交投标表格时,我发现以下错误:

模板呈现过程中出现
错误
在模板C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\auctions\templates\auctions\layout.html中,第0行出现错误
文件“C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\.venv\lib\site packages\django\template\base.py”,第936行,呈现
位=节点。带注释的渲染(上下文)
文件“C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\.venv\lib\site packages\django\template\base.py”,第903行,在render\u注释中
返回self.render(上下文)
文件“C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\.venv\lib\site packages\django\template\defaulttags.py”,
第309行,在渲染中
返回nodelist.render(上下文)
文件“C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\.venv\lib\site packages\django\template\base.py”,第936行,呈现
位=节点。带注释的渲染(上下文)
文件“C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\.venv\lib\site packages\django\template\base.py”,第903行,在render\u注释中
返回self.render(上下文)
C:\Users\SJEOM\Documents\cs50\u web\commerce\commerce\.venv\lib\site packages\django\template\defaulttags.py在呈现中
值=列表(值)
TypeError:“模块”对象不可编辑
这个错误意味着什么?我应该去哪里?多谢各位

layout.html
中:

{%load static%}
{%block title%}拍卖{%endblock%}
拍卖
{%if user.u经过身份验证%}
以{{user.username}}身份登录。
{%else%}
未登录。
{%endif%}
  • {%if user.u经过身份验证%}
  • {%else%}
  • {%endif%}

{%block body%} {%endblock%}
编辑:
layout.html
按要求粘贴

我做错了什么?
编辑:我在
列表_page.html
中找到了问题代码。一旦我去掉了这段代码,或者不再在for循环中循环消息,而是将
{{messages}}
,它不再显示错误

{%if消息%}
    {消息%中的消息为%s}
  • {{message}}
  • {%endfor%}
{%endif%}
views.py中的代码可能工作正常,因为它试图呈现页面。错误可能在template\templates\auctions\layout.html中。你能粘贴它吗?它说您正在尝试循环不接受循环的内容。当然,我添加了请求的代码。@EduardoMatsuoka您是对的,一旦我在模板中去掉for循环,它就工作了。我在原始帖子中添加了for循环代码。怎么了?如何正确显示信息?@EduardoMatsuoka修正了!我必须摆脱“信息”:上下文中的信息。这是在消息模块中传递的,而不是消息iterable。结果表明,消息iterable在模板中可用,而无需在上下文中传递它。谢谢你给我指明了正确的方向!我正要回答这个问题。很好,你找到了解决方案。views.py中的消息是一个对象,您不能像列表一样在模板中迭代。views.py中的代码可能工作正常,因为它试图呈现您的页面。错误可能在template\templates\auctions\layout.html中。你能粘贴它吗?它说您正在尝试循环不接受循环的内容。当然,我添加了请求的代码。@EduardoMatsuoka您是对的,一旦我在模板中去掉for循环,它就工作了。我在原始帖子中添加了for循环代码。怎么了?我怎样才能正确显示这些信息?@EduardoMa