Django形式的参数类型为';事件';这是不可容忍的
你好,我正在为运动员设计一个注册系统来注册参加体育比赛。注册页面捕获运动员的所有信息,并将其保存在“运动员”模型的数据库中。然后运动员电子邮件地址(模型中的唯一字段)存储为会话变量,用户被重定向到支付页面。付款页面将从传递到页面的参数中获取事件信息,然后从会话变量中提取运动员的电子邮件地址,并使用该地址获取运动员信息。从那里,它使用运动员和赛事信息查询数据库,以查找成本并将其作为注册费呈现给用户 注册页面似乎一切正常,但是我在从注册页面重定向到付款页面时遇到了一个“类型为“Event”的参数不可编辑”错误 这是“付款”页面的视图Django形式的参数类型为';事件';这是不可容忍的,django,django-forms,Django,Django Forms,你好,我正在为运动员设计一个注册系统来注册参加体育比赛。注册页面捕获运动员的所有信息,并将其保存在“运动员”模型的数据库中。然后运动员电子邮件地址(模型中的唯一字段)存储为会话变量,用户被重定向到支付页面。付款页面将从传递到页面的参数中获取事件信息,然后从会话变量中提取运动员的电子邮件地址,并使用该地址获取运动员信息。从那里,它使用运动员和赛事信息查询数据库,以查找成本并将其作为注册费呈现给用户 注册页面似乎一切正常,但是我在从注册页面重定向到付款页面时遇到了一个“类型为“Event”的参数不可
def payment(request, event_year, event_slug):
event = Event.objects.get(event_date__year = event_year, event_slug = event_slug)
athlete = Athlete.objects.get(email_address=request.session.get('user_email'))
if request.method == 'POST':
form = PaymentForm(data=request.POST)
if form.is_valid():
# process form payment data
form.save()
return redirect('home')
else:
form = PaymentForm(event, athlete)
return render(request, 'events/event_payment.html', {
'event': event,
'athlete': athlete,
'form': form
})
付款表格和登记表格都是常规表格,而不是模型表格。这是付款单的模板。应该注意的是,如果{{form}}标记从模板中移除,那么页面呈现时不会出现错误,但是我需要{{form}来处理付款
{% extends "base.html" %}
{% block head %}
<title>{{ event.event_date.year }} {{ event.event_name }} Payment</title>
{% endblock head %}
{% block content %}
<div class="row-fluid">
<div class="span12">
<h2>{{ event.event_date.year }} {{ event.event_name }} Entry Form for {{ athlete.first_name }} {{ athlete.last_name }}</h2>
<form action="" method="post">
{% csrf_token %}
<p>Payment for {{ athlete.first_name }} {{ athlete.last_name }}
{{ form }}
<button type="submit">Register</button>
</form>
</div>
</div>
{% endblock content %}
以下是完整的回溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/2014/bikini-figure-fitness-physique-championships/payment
Django Version: 1.5.1
Python Version: 2.7.6
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'events')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Template error:
In template /home/nse/Development/Django/cbbf/events/templates/events/event_payment.html, error at line 17
argument of type 'Event' is not iterable
7 : {% block content %}
8 :
9 : <!-- Example row of columns -->
10 : <div class="row-fluid">
11 : <div class="span12">
12 : <h2>{{ event.event_date.year }} {{ event.event_name }} Entry Form for {{ athlete.first_name }} {{ athlete.last_name }}</h2>
13 : <p></p>
14 : <form action="" method="post">
15 : {% csrf_token %}
16 : <p>Payment for {{ athlete.first_name }} {{ athlete.last_name }}
17 : {{ form }}
18 : <button type="submit">Register</button>
19 : </form>
20 : </div>
21 : </div>
22 :
23 : {% endblock content %}
24 :
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/home/nse/Development/Django/cbbf/events/views.py" in payment
164. 'form': form
File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" in render
53. return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in render_to_string
177. return t.render(context_instance)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
140. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
134. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
124. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
134. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
63. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render
87. output = force_text(output)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text
99. s = s.__unicode__()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in __str__
100. return self.as_table()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in as_table
222. errors_on_separate_row = False)
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _html_output
145. top_errors = self.non_field_errors() # Errors that should be displayed above all fields.
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in non_field_errors
248. return self.errors.get(NON_FIELD_ERRORS, self.error_class())
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _get_errors
117. self.full_clean()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in full_clean
272. self._clean_fields()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _clean_fields
281. value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in value_from_datadict
522. if name not in data:
Exception Type: TypeError at /2014/bikini-figure-fitness-physique-championships/payment
Exception Value: argument of type 'Event' is not iterable
环境:
请求方法:获取
请求URL:http://127.0.0.1:8000/2014/bikini-图健身健美锦标赛/付款
Django版本:1.5.1
Python版本:2.7.6
已安装的应用程序:
(“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.sites”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“django.contrib.admin”,
"活动")
已安装的中间件:
('django.middleware.common.CommonMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
模板错误:
在template/home/nse/Development/Django/cbbf/events/templates/events/events\u payment.html中,第17行出现错误
类型为“Event”的参数不可编辑
7:{%block content%}
8 :
9 :
10 :
11 :
12:{{event.event_date.year}{{{event.event_name}}{{{atternate.first_name}}{{atternate.last_name}参赛表格
13:
14 :
15:{%csrf_令牌%}
16:支付{{运动员.名字}{{运动员.姓氏}
17:{{form}
18:登记册
19 :
20 :
21 :
22 :
23:{%endblock内容%}
24 :
回溯:
get_响应中的文件“/usr/local/lib/python2.7/dist packages/django/core/handlers/base.py”
115响应=回调(请求,*回调参数,**回调参数)
付款中的文件“/home/nse/Development/Django/cbbf/events/views.py”
164. '表格:表格
render中的文件“/usr/local/lib/python2.7/dist packages/django/shortcuts/\uuuu init\uuuu.py”
53返回HttpResponse(loader.render_to_string(*args,**kwargs),
render_to_字符串中的文件“/usr/local/lib/python2.7/dist packages/django/template/loader.py”
177.返回t.render(上下文_实例)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/base.py”
140.返回自渲染(上下文)
文件“/usr/local/lib/python2.7/dist packages/django/template/base.py”
134.返回self.nodelist.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/base.py”
830.bit=self.render\u节点(节点,上下文)
render_节点中的文件“/usr/local/lib/python2.7/dist packages/django/template/debug.py”
74.返回节点.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/loader_tags.py”
124.返回编译的\u父对象。\u呈现(上下文)
文件“/usr/local/lib/python2.7/dist packages/django/template/base.py”
134.返回self.nodelist.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/base.py”
830.bit=self.render\u节点(节点,上下文)
render_节点中的文件“/usr/local/lib/python2.7/dist packages/django/template/debug.py”
74.返回节点.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/loader_tags.py”
63.result=block.nodelist.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/base.py”
830.bit=self.render\u节点(节点,上下文)
render_节点中的文件“/usr/local/lib/python2.7/dist packages/django/template/debug.py”
74.返回节点.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/debug.py”
87.输出=力_文本(输出)
文件“/usr/local/lib/python2.7/dist packages/django/utils/encoding.py”,格式为force_text
99.s=s.\uuuuuuUnicode\uuuuuuu()
文件“/usr/local/lib/python2.7/dist packages/django/forms/forms.py”位于__
100.返回self.as_table()
as_表中的文件“/usr/local/lib/python2.7/dist packages/django/forms/forms.py”
222.错误(在单独的行上=错误)
html\u输出中的文件“/usr/local/lib/python2.7/dist packages/django/forms/forms.py”
145top_errors=self.non_field_errors()#应显示在所有字段上方的错误。
非字段错误中的文件“/usr/local/lib/python2.7/dist packages/django/forms/forms.py”
248返回self.errors.get(非字段错误,self.error\u类())
文件“/usr/local/lib/python2.7/dist packages/django/forms/forms.py”中的“获取错误”
117self.full_clean()
文件“/usr/local/lib/python2.7/dist-packages/django/forms/forms.py”的全文
272self._clean_fields()
文件“/usr/local/lib/python2.7/dist-packages/
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/2014/bikini-figure-fitness-physique-championships/payment
Django Version: 1.5.1
Python Version: 2.7.6
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'events')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Template error:
In template /home/nse/Development/Django/cbbf/events/templates/events/event_payment.html, error at line 17
argument of type 'Event' is not iterable
7 : {% block content %}
8 :
9 : <!-- Example row of columns -->
10 : <div class="row-fluid">
11 : <div class="span12">
12 : <h2>{{ event.event_date.year }} {{ event.event_name }} Entry Form for {{ athlete.first_name }} {{ athlete.last_name }}</h2>
13 : <p></p>
14 : <form action="" method="post">
15 : {% csrf_token %}
16 : <p>Payment for {{ athlete.first_name }} {{ athlete.last_name }}
17 : {{ form }}
18 : <button type="submit">Register</button>
19 : </form>
20 : </div>
21 : </div>
22 :
23 : {% endblock content %}
24 :
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/home/nse/Development/Django/cbbf/events/views.py" in payment
164. 'form': form
File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" in render
53. return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in render_to_string
177. return t.render(context_instance)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
140. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
134. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
124. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
134. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
63. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
830. bit = self.render_node(node, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
74. return node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render
87. output = force_text(output)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text
99. s = s.__unicode__()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in __str__
100. return self.as_table()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in as_table
222. errors_on_separate_row = False)
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _html_output
145. top_errors = self.non_field_errors() # Errors that should be displayed above all fields.
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in non_field_errors
248. return self.errors.get(NON_FIELD_ERRORS, self.error_class())
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _get_errors
117. self.full_clean()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in full_clean
272. self._clean_fields()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in _clean_fields
281. value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in value_from_datadict
522. if name not in data:
Exception Type: TypeError at /2014/bikini-figure-fitness-physique-championships/payment
Exception Value: argument of type 'Event' is not iterable