大家好,感谢您的阅读!
我是Django的一个非常新颖的用户。我决定从我的基本网站转到django,学习如何使用框架网络。我做了django教程,但是我的项目......根本没有麻烦。
首先让我简要描述一下我的项目,以便您可以全面了解整个项目。我的基本网站包含一个主页和可以更改不同参数(例如室温)或检查传感器数据的部分。
到目前为止,我已经运行了主页和温度控制部分(只需要很少的东西来修复,但是正确渲染)。我想用主页中的按钮链接每个部分。这是我的主页模板:
{% extends 'base.html' %}
{% block content %}
<h1>Here goes a title</h1>
<p>A welcome message here...</p>
<h2>please select an action</h2>
<div id="column_left" class="column">
{% for action in actions_list_left %}
<div id="action_box1{{ forloop.counter }}" class="action_box">
<input type="button" onclick= " HELP HERE!! "
id= "{{ action.action_name }}_sel" class="action_button">
<div id="{{ action.action_name }}_desc" class="action_desc">
{{ action.description }}
</div>
</div>
{% endfor %}
</div>
<!--I ommit the right column, containing more actions...-->
{% endblock %}
我想使用我的“动作”模型字段链接到其他部分。我的想法是使用动作名称字段作为该部分的URL(以通用的“模型”方式)。例如,如果我的主页位于localhost:8000 /且操作名称为“temp”,我希望关联的按钮链接到localhost:8000 / temp并呈现合适的模板。
我认为这是一个urls.py问题,我在这里发布我的网址文件(没有导入行)......
urls.py
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', include('principal.urls')),
url(r'^temp/', include('temp.urls')),
)
委托人/ urls.py
urlpatterns = patterns('',
url(r'^$', 'principal.views.home', name='home'),
)
温度/ urls.py
urlpatterns = patterns('',
url(r'^$', 'temp.views.index', name='temp_index'),
url(r'^(?P<pk>\d+)/$',
DetailView.as_view(
model=Room,
template_name='temp/roomTemp.html')),
)
我尝试了一些我在其他帖子中读过的想法......
{% url temp:index %}
这个引发了NoReverseMatch错误...'temp'不是注册的命名空间。然后我用谷歌搜索了如何通过这个,我在urls.py中改变了这一行:
url(r'^temp/', include('temp.urls', namespace='temp')),
同样在temp / urls.py中我更改了一行:
url(r'^$', 'temp.views.index', name='temp'),
两个页面仍然呈现正常,但按钮不起作用(什么都不做)...它必须非常简单,但所有的url对我来说似乎有点棘手(顺便说一句,语法有时就像一个makefile mordor文件:P)。我正在使用Django 1.3
任何帮助都会非常感激。此外,任何“好的django编码器”评论或解释都会非常有用,只是为了不再犯同样的错误!
提前致谢,
涓
编辑: 我在这里的代码中发布了修复程序,以防有人发现它有用:
<form action="{% url action.action_url %}">
<input type="submit" id="{{ action.action_name }}_sel" value="" class="action_button">
<div id="{{ action.action_name }}_desc" class="action_desc">
{{ action.description }}
</div>
</form>
答案 0 :(得分:0)
如果您不需要使用url名称空间,则可以执行此操作
<强> urls.py 强>
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', include('principal.urls')),
url(r'^temp/', include('temp.urls')),
)
<强>温度/ urls.py 强>
urlpatterns = patterns('',
url(r'^$', 'temp.views.index', name='temp_index'),
url(r'^(?P<pk>\d+)/$',
DetailView.as_view(
model=Room,
template_name='temp/roomTemp.html')),
)
然后在模板中
{% url 'temp_index' %}
希望它适合你。