微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django:HTML表单操作指向使用2个参数查看(或url?)

大约一周前开始学习 django并碰壁.真的很感激任何启蒙……

models.py

class data(models.Model):
    course = models.CharField(max_length = 250)

    def __str__(self):
        return self.course

HTML

将models.course中的对象转换为schlist

<link rel="stylesheet" type="text/css" href="{% static '/chosen/chosen.css' %}" />
                      <form action={% views.process %}  method="GET">
                            <div>
                              <h4 style="font-family:verdana;">First Course: </h4>
                              <select data-placeholder="Course" style="width:350px;" class="chosen-select" tabindex="7">
                                <option value=""></option>
                                {% for item in schlist %}
                                <option> {{ item }} </option>
                                {% endfor %}
                              </select>
                            </div>
                            </br>
                            <div>
                              <h4 style="font-family:verdana;">Second Course:</h4>
                              <select data-placeholder="Course" style="width:350px;" class="chosen-select" tabindex="7">
                                <option value=""></option>
                                {% for item in schlist %}
                                <option> {{ item }} </option>
                                {% endfor %}
                              </select>
                            </div>
                            </br>
                        <input type="submit" value="Compare!" />
                      </form>

urls.py(怀疑我是否有效……)

urlpatterns = [
    url(r'^(\d+)/(\d+)$',views.process,name = 'process'),]

view.py

def process(request,q1,q2):
    obj1= get_object_or_404(Schdata,course = q1)
    obj2= get_object_or_404(Schdata,course = q2)
 ........

想知道表格行动是否有可能将行动指向

(1)view.py或(2)url.py(并最终到一个view.py)选择了2个参数?

如果是这样,表格行动应该如何? {{view?}}或{{url?}}.我在HTML中错过了参数的定义吗?

导向views.py:

用户输入是CharField,可以使用get_object_or_404来获取模型pk.但是在定义我的urls.py时,我会得到一个noreverse错误,因为我的url参数是主键.

指向urls.py:

Url参数是主键.从我看到它的方式,我需要神奇地将我的用户输入Charfield转换为pk,然后将其传递给urls.py

django中是否有(或)函数用于get()?例如get_object_or_404(pk = q1或course = q1)?

非常感谢任何建议.几个小时一直在盯着这个.

解决方法

您正试图在Django中使用URL的反向解析.

在你的html文件中,正确的表单操作url到下面的方法应该是POST:

<form action={% url 'process' %}  method="POST">

如果您尝试传递参数,请使用以下命令:

<form action={% url 'process' request.user.id 4 %}  method="POST">

参考:
https://docs.djangoproject.com/en/1.10/topics/http/urls/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐