Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
Python Django在模板中传递视图url变量_Python_Django_Web - Fatal编程技术网

Python Django在模板中传递视图url变量

Python Django在模板中传递视图url变量,python,django,web,Python,Django,Web,我觉得这将是一个令人尴尬的问题,但我找不到答案。我尝试过谷歌,但我感到相当沮丧,所以我决定在这里提问。 我在django的一个模板文件中找到了这个代码片段 {% url cal.views.month year month "next" %} 我运行代码并得到这个错误 未找到带参数的'courseCalendar.views.month'(2013年9月u'next')的反面 为什么当我尝试以字符串形式传递变量时,它也会将u放入其中。这是非常令人沮丧的,我真的很感激有人给我两分钱 编辑:如果我

我觉得这将是一个令人尴尬的问题,但我找不到答案。我尝试过谷歌,但我感到相当沮丧,所以我决定在这里提问。 我在django的一个模板文件中找到了这个代码片段

{% url cal.views.month year month "next" %}
我运行代码并得到这个错误
未找到带参数的'courseCalendar.views.month'(2013年9月u'next')的反面

为什么当我尝试以字符串形式传递变量时,它也会将u放入其中。这是非常令人沮丧的,我真的很感激有人给我两分钱

编辑:如果我不包含字符串“next”,而是使用一个变量,比如年份和月份变量,那么一切都可以正常工作,因此这不是url问题或模板问题

url模式

from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
    url(r'', 'courseCalendar.views.main'),
    url(r'^month/(?P<year>\d{4})/(?P<month>\d{2})/(?P<change>[a-z])/$', 'courseCalendar.views.month', name="month"),

)
从django.conf.url导入模式,包括,url
urlpatterns=模式(“”,
url(r'','courseCalendar.views.main'),
url(r'^month/(?P\d{4})/(?P\d{2})/(?P[a-z])/$,'courseCalendar.views.month',name=“month”),
)
观点

#在此处创建视图。
导入时间
导入日历
从日期时间导入日期、日期时间、时间增量
#从django.contrib.auth.decorators导入登录要求所需的登录\ u。
从django.http导入HttpResponseRedirect,HttpResponse
从django.import获取\u对象\u或\u 404,呈现\u到\u响应
从courseCalendar.models导入*
monthNames=“一月-二月-三月-四月-五月-六月-八月-九月-十月-十一月-十二月”
monthNames=monthNames.split()
#@需要登录这应该在将来取消注释,但现在我们不想处理它。目前默认设置为2013年。
def干管(请求,年份=“无”):
如果年份==“无”:
年份=时间。本地时间()[0]
其他:
年份=整数(年)
currentYear,currentMonth=time.localtime()[:2]
totalList=[]
对于[年]中的y:
月列表=[]
对于n,枚举中的月(月):
课程=当前=错误
课程=课程.对象.过滤器(课程日期年=y,课程日期月=n+1)
如果课程:
航向=正确
如果y==当前年份,n+1==当前月份:
电流=真
monthList.append(dict(n=n+1,name=month,course=course,current=current))
总计列表追加((y,月列表))

#将呈现返回到响应(“courseCalendar/Templates/main.html”,dict(years=totalist,user=request.user,year=year,members=members(request))更改为以下内容:

在您的视图文件中:

def month(request, year=1, month=1, change="None"):
在您的url文件中:

url(r'^month/(?P<year>\d{4})/(?P<month>\d{2})/(?P<change>\w+)/$', 'courseCalendar.views.month', name="month"),
url(r'^month/(?P\d{4})/(?P\d{2})/(?P\w+/$),'courseCalendar.views.month',name=“month”),

更改为上述内容后,如果收到错误,请在此处发布错误消息。

发布url模式。url.py是什么,为什么在结尾处使用“签名”url(r“^month$”、“courseCalendar.views.month”、“name='month')结尾处的“是一个打字错误。它在没有“next”参数的情况下找到页面供参考。我认为我的url没有问题。您如何向视图传递参数?你甚至没有在url模式中添加参数。正如@Hardy所说,发布所有url模式。与参数(2013,1,u'next')和关键字参数“{}”相反的是'courseCalendar.views.month''未找到。我更改了我的url文件以接受带参数和不带参数的月份调用,并且我能够解决此问题,非常感谢您的帮助。url(r'^month/(?P\d{4})/(?P\d{1,2})/(?P\w+$,'courseCalendar.views.month')也将您的url更改为此
<a href="{% url "courseCalendar.views.month" %}">&lt;&lt; Prev</a>
<a href="{% url "courseCalendar.views.month" %}">Next &gt;&gt;</a>

<h4>{{ month }} {{ year }}</h4>

<div class="month">
<table>

<tr>
    <td class="empty">Mon</td>
    <td class="empty">Tue</td>
    <td class="empty">Wed</td>
    <td class="empty">Thu</td>
    <td class="empty">Fri</td>
    <td class="empty">Sat</td>
    <td class="empty">Sun</td>
</tr>

{% for week in month_days %}
    <tr>
    {% for day, courses, current in week %}
        <td class= {% if day == 0 %}"empty"{% endif %}
        {% if day != 0 and not current %}"day"{% endif %}
        {% if day != 0 and current %}"current"{% endif %}
        {% if day != 0 %}"Add day click code here"{% endif %} >

        {% if day != 0 %}
            {{ day }}
            {% for course in courses %}
                <br />
                <b>{{ course.courseCreator }}</b>
            {% endfor %}
        {% endif %}
    {% endfor %}
    </td>
{% endfor %}
</table>

<div class="clear"></div>
</div>
def month(request, year=1, month=1, change="None"):
url(r'^month/(?P<year>\d{4})/(?P<month>\d{2})/(?P<change>\w+)/$', 'courseCalendar.views.month', name="month"),