大家好,感谢阅读!
我是一个非常新颖的 Django 用户。我决定从我的基本 web 转移到 django 来学习如何使用框架 web。我做了 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>