Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django形式的参数类型为';事件';这是不可容忍的_Django_Django Forms - Fatal编程技术网

Django形式的参数类型为';事件';这是不可容忍的

Django形式的参数类型为';事件';这是不可容忍的,django,django-forms,Django,Django Forms,你好,我正在为运动员设计一个注册系统来注册参加体育比赛。注册页面捕获运动员的所有信息,并将其保存在“运动员”模型的数据库中。然后运动员电子邮件地址(模型中的唯一字段)存储为会话变量,用户被重定向到支付页面。付款页面将从传递到页面的参数中获取事件信息,然后从会话变量中提取运动员的电子邮件地址,并使用该地址获取运动员信息。从那里,它使用运动员和赛事信息查询数据库,以查找成本并将其作为注册费呈现给用户 注册页面似乎一切正常,但是我在从注册页面重定向到付款页面时遇到了一个“类型为“Event”的参数不可

你好,我正在为运动员设计一个注册系统来注册参加体育比赛。注册页面捕获运动员的所有信息,并将其保存在“运动员”模型的数据库中。然后运动员电子邮件地址(模型中的唯一字段)存储为会话变量,用户被重定向到支付页面。付款页面将从传递到页面的参数中获取事件信息,然后从会话变量中提取运动员的电子邮件地址,并使用该地址获取运动员信息。从那里,它使用运动员和赛事信息查询数据库,以查找成本并将其作为注册费呈现给用户

注册页面似乎一切正常,但是我在从注册页面重定向到付款页面时遇到了一个“类型为“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