gpt4 book ai didi

python - 简单的 URL 映射问题

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:18 25 4
gpt4 key购买 nike

我想映射我的 urls.py 以包含此 url:http://127.0.0.1:8000/activity/Arts%20&%20Crafts/member

这个 url 是由我的 activity.html 模板中的这行代码创建的:

 <li><a href='/activity/{{ activity.name }}/member'>{{ activity.name }}</a></li>

Arts & Crafts 是我在模型 Activity 下创建的对象的名称:

(模型.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、事件/艺术与工艺品/成员(member)与其中任何一个都不匹配。”

谁能告诉我我的网址有什么问题,以及如何解决?谢谢。

额外信息--urls.py:从 django.conf.urls 导入 url

从。导入 View

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

最佳答案

更新您的 urls.py 以捕获事件的名称:

url(r'^activity/(?P<activityname>[^/]+)/member/$',
views.SelectView.as_view(), name='select_member'),

正则表达式将捕获事件的名称并将其作为关键字参数传递给 View 函数的适当方法(get 或 post)。在该函数中,您可以从 kwargs['activityname'] 检索事件名称,然后通过 Activity.objects.get(name=kwargs['activityname ']).

然后在您的模板中,您可以使用

<li><a href="{% url 'select_member' activity.name %}">{{ activity.name }}</a></li>

关于python - 简单的 URL 映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33949611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com