简体   繁体   English

模板渲染期间的 Django 错误

[英]django Error during template rendering

I am trying to pass values of multiple checkbox from a html template to views.py and then show those values in response.我试图将多个复选框的值从 html 模板传递给 views.py,然后在响应中显示这些值。 I created a forms.py in my application and defined a class.我在我的应用程序中创建了一个 forms.py 并定义了一个类。 i then passed the value to pack method of views.py.然后我将值传递给views.py的pack方法。

template:模板:

<form method="POST" action="{% url 'pack' %}">
    <div id="row-1">
        <button name="pack" id="pack">Pack</button>
    </div>
    <div id="row-2">
        <table>
            <thead>
                <tr>
                    <th><input type="checkbox" onClick="toggle(this, 'no')"></th>
                    <th>Order Id</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><input type="checkbox" name="no" value="10000001">10000001</td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="no" value="10000002">10000002</td>
                </tr>
            </tbody>
        </table>
    </div>
</form>
<script type="text/javascript">
    function toggle(source, text) {
        checkboxes = document.getElementsByName(text);
        for(var i=0, n=checkboxes.length;i<n;i++) {
            checkboxes[i].checked = source.checked;
            }
        }
</script>

My views.py:我的意见.py:

from django.shortcuts import render
from django.http import HttpResponse
from test1 import forms

def index(request):
    return render(request, 'index.html')

def pack(request):
    oid_list = []
    form = PackOrders(request.POST or None)
    if request.method == 'POST':
        for item in form.cleaned_data['no']:
            oid_list.append(item)
    return HttpResponse(oid_list)

forms.py:表格.py:

from django import forms

class PackOrders(forms.Form):
    order_items = forms.CharField()

urls.py:网址.py:

from django.conf.urls import patterns
from django.conf.urls import url
from test1 import views

urlpatterns = patterns('', 
                    url(r'^$', views.index, name='index'),
                    url(r'^index.html', views.index, name='index1'),
                    url(r'^test/', 'views.pack', name='pack'),)

what is wrong with the code?代码有什么问题?

EDIT: It is throwing Error during template rendering编辑:它Error during template rendering抛出Error during template rendering

Traceback points to <form method="POST" action="{% url 'pack' %}">回溯指向<form method="POST" action="{% url 'pack' %}">

Traceback:
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/manish/syserp/chkbx/test1/views.py" in index
  7.    return render(request, 'index.html')
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/shortcuts.py" in render
  67.             template_name, context, request=request, using=using)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  99.         return template.render(context, request)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/backends/django.py" in render
  74.         return self.template.render(context)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/base.py" in render
  209.                     return self._render(context)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/base.py" in _render
  201.         return self.nodelist.render(context)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/base.py" in render
  903.                 bit = self.render_node(node, context)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/debug.py" in render_node
  79.             return node.render(context)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render
  493.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse
  579.     return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
  433.             self._populate()
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  308.                     for name in pattern.reverse_dict:
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse_dict
  338.             self._populate()
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _populate
  326.                 lookups.appendlist(pattern.callback, (bits, p_pattern, pattern.default_args))
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in callback
  247.         self._callback = get_callable(self._callback_str)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/utils/lru_cache.py" in wrapper
  101.                     result = user_function(*args, **kwds)
File "/home/manish/syserp/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in get_callable
  106.         mod = import_module(mod_name)
File "/usr/lib/python2.7/importlib/__init__.py" in import_module
  37.     __import__(name)

Exception Type: ImportError at /
Exception Value: No module named views

Please point out errors as this is my first django project.请指出错误,因为这是我的第一个 django 项目。

In the form's html code, simply set the action attribute to action='/test/'.在表单的 html 代码中,只需将 action 属性设置为 action='/test/'。

Again in views.py再次在 views.py

if request.method == 'POST':
    list_of_ids = request.POST.getlist('no')
    for id in list_of_ids:
        oid_list.append(id)

try this, it should help试试这个,它应该有帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM