gpt4 book ai didi

python - Django KeyError {% if in %}

转载 作者:行者123 更新时间:2023-12-01 05:57:29 24 4
gpt4 key购买 nike

我正在自学 Django,我正在尝试做一个测试,以便现有用户将获得一个列出他或她的“东西”的页面,新用户将获得一个通知他或她的页面他们不在系统中,并且可以生成用户列表。问题是我不断收到不在预先存在的用户字典中的任何用户的 KeyErrors(如果用户在字典中则工作正常)。我不确定问题是否出在我在 view.py 中构造相关函数的方式,或者出在我使用 templateTags 的方式,或者什么。 Django 的错误页面指向我的views.py 页面的上下文行,但我不知道这是否真的是问题所在。

任何帮助将不胜感激。

我的代码:

views.py:

def hiUser(request,uname):
t = get_template("samplate1.html")
ds,ti = getTime()
user_stuff = {"sam":["a","b","c"],"kathy":["foo","bar"],"rob":[]}
c = Context({"date":ds,"time":ti,"user":uname,"user_stuff":user_stuff[uname],"users":user_stuff.keys()})
return HttpResponse(t.render(c))

样本1.html:

<html>
{% ifequal user "list" %}
<head><title>List of Users</title></head>
<body><h1>List of users</h1>
<ul>
{% for user in users %}
<li>{{ user }}</li>
{% empty %}
<p>No users listed!</p>
{% endfor %}
</ul>
{% endifequal %}
{% if user in users %}
<head><title>Greetings, {{ user }}</title></head>
<body>
<h1>Hello</h1>
<p>Greetings, {{ user }}</p>
<p>The date is {{ date }}</p>
<p>The time is {{ time }}</p>
<p>Here is a list of your stuff:</p>
<ul>
{% for item in user_stuff %}
<li>{{ item }}</li>
{% empty %}
<p>You don't have any stuff!</p>
{% endfor %}
</ul>
{% else %}
<head><title>You're new here, huh?</title></head>
<body>
<h1>Hello</h1>
<p>Your username is not in our database.</p>
<p>You should probably fix that.</p>
{% endif %}

最后:

url.py:

...
urlpatterns = ('',
(r'^user/name/(.*)/$',hiUser),
)

最佳答案

使用user_stuff.get(uname)代替user_stuff[uname]。如果 uname 键不存在,则该值为 None。或者您可以使用user_stuff.get(uname, []),如果它不存在,它将使其成为一个空列表。

关于python - Django KeyError {% if in %},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com