【发布时间】:2016-03-01 04:43:44
【问题描述】:
我想映射我的 urls.py 以包含此 url:http://127.0.0.1:8000/activity/Arts%20&%20Crafts/member
这个网址是由我的activity.html模板中的这行代码创建的:
<li><a href='/activity/{{ activity.name }}/member'>{{ activity.name }}</a></li>
Arts & Crafts 是我在模型 Activity 下创建的对象的名称:
(models.py)
class Activity(models.Model):
name = models.CharField(max_length=50)
comments = models.CharField(max_length=300, null=True, blank=True)
questions = models.ManyToManyField(Question, blank=True)
pub_date = models.DateTimeField('Date published')
def __str__(self):
return self.name
现在,我在 urls.py 中的 url 看起来像这样:
url(r'^activity/{{ models.Activity.name }}/member/$', views.SelectView.as_view(), name='select_member'),
但它不起作用。当我尝试去http://127.0.0.1:8000/activity/Arts%20&%20Crafts/member;我收到“未找到页面”错误消息,提示“当前 URL、活动/Arts & Crafts/member,与其中任何一个都不匹配。”
谁能告诉我我的网址有什么问题,以及如何解决?谢谢。
额外信息—— urls.py: 从 django.conf.urls 导入 url
从 .导入视图
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^detail/$', views.DetailView.as_view(), name='detail'),
url(r'^activity/$', views.ActivityView.as_view(), name='activity'),
url(r'^activity/{{ models.Activity.name }}/member/$', views.SelectView.as_view(), name='select_member'),
]
views.py:
class SelectView(generic.ListView):
template_name = 'expcore/select_member.html'
model = Activity
【问题讨论】:
-
为什么不使用内置的 url 标签?喜欢
{% url 'myapp:view-name' %} -
@neo-xx 抱歉,我对 Django/Python 非常陌生,不确定您的意思:\您能澄清一下吗?
-
假设您在该应用中有一个 django 应用
a和一个视图v,因此您可以使用{% url 'a:v' %}这将生成您尝试手动生成的 url -
另外请添加 urls.py 和 views.py
-
@neo-xx 添加,我现在只是使用简化视图。
标签: python django django-urls