[英]Django url template tag: 'module' object has no attribute 'views'
有问题的标签:
< a href="{% url django.contrib.auth.views.login %}">Login< /a>
URL配置:
from django.contrib.auth import views <br />
...<br />
(r'^login/$',views.login, {'redirect_field_name' : '/' })
<br />...
最好使用命名网址,它们将来会节省大量维护工作并首先打字。
如果您保持网址的名称相同,您可以重命名视图功能,将其移动到其他应用程序等,您根本不需要使用此网址更改模板或其他位置。
在urls.py中:
url(r'^login/',path.to.view,name='login',...)
在模板中:
<a href="{%url login%}">login here</a>
在观点中:
login_url = reverse('login')
出于某种原因,它不喜欢我导入它的方式。
解:
from django.contrib.auth.views import login
(r'^login', login, etc.)
我相信我有一些事情要为这个问题做出贡献。
对我来说很奇怪的是,我的代码在我使用它的方式上是有道理的,但它不起作用。
如果在我的网址中我尝试了以下内容。 helloworld是我的django app名称。
import helloworld
...
url(r'^test', helloworld.views.home1() , name='home'),
它会产生错误。 即使技术上每件事都是正确的。 我导入了我的应用程序,这是一个由django manage startapp
自动创建的python模块
module' object has no attribute 'views'
我在github上找到了django项目站点的源代码,看看他们如何在他们的app的url部分进行导入。 去看看github上的这个项目吧。 它是大规模项目实施的极好参考。 那里有很多值得学习的地方。 https://github.com/django/djangoproject.com 。
这是他们进行导入和url配置的方式。
from accounts import views as account_views
...
url(r'^~(?P<username>[\w-]+)/$', account_views.user_profile, name='user_profile'),
所以我将代码修改为类似的东西
import helloworld.views as helloView
...
url(r'^test', helloView.home1 , name='home'),
这很可能与app / project / python命名空间有关。 我不完全确定。 但是我的代码按预期工作,我仍然可以在各自的命名空间中拥有不同的应用程序。 我只需要确保import app.view as somename
在app / project / python命名空间方案中是唯一的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.