Django 斯拉格菲尔德的诺维瑟维奇?
我对modelDjango 斯拉格菲尔德的诺维瑟维奇?,django,Django,我对modelteam的team\u name字段进行了“slugized”,以便在URL中更漂亮地显示空格。然而,当我尝试切换传递到URL的pk变量时,我得到了一个slug的NoReverseMatch。使用团队名称可以正常工作 型号 class Team(models.Model): team_name = models.CharField(max_length=25, unique=True) team_name_slug = models.SlugField(max_l
team
的team\u name
字段进行了“slugized”,以便在URL中更漂亮地显示空格。然而,当我尝试切换传递到URL的pk变量时,我得到了一个slug的NoReverseMatch。使用团队名称
可以正常工作
型号
class Team(models.Model):
team_name = models.CharField(max_length=25, unique=True)
team_name_slug = models.SlugField(max_length=25, unique=True)
def team_public_profile(request, pk):
team = get_object_or_404(Team, team_name=pk)
... other code
---
<form action="{% url 'team_public_profile' pk=team_name %}">
视图+模板URL(这不起作用)
def团队公共档案(请求、主键):
团队=获取对象或404(团队,团队名称\u slug=pk)
... 其他代码
---
这很有效
class Team(models.Model):
team_name = models.CharField(max_length=25, unique=True)
team_name_slug = models.SlugField(max_length=25, unique=True)
def team_public_profile(request, pk):
team = get_object_or_404(Team, team_name=pk)
... other code
---
<form action="{% url 'team_public_profile' pk=team_name %}">
def团队公共档案(请求、主键):
团队=获取对象或404(团队,团队名称=主键)
... 其他代码
---
首先,您需要使用团队模型save()
上的django.utils.text.slugify
方法填充团队名称\u slug
,如:
from django.utils.text import slugify
class Team(models.Model):
...
def save(self, *args, **kwargs):
if self.team_name:
self.team_name_slug = slugify(self.team)
super(Team, self).save(*args, **kwargs)
您的URL应该如下所示:
url(r'^teams/(?P<team_name_slug>[\w-]+)/$', views.team_public_profile, name='team_public_profile')
您是否介意显示您的URL.py
?@nik\m谢谢。这就是问题所在,我将url正则表达式从(?P[\w]+)
更改为(?P[\w-]+)
。现在它工作了。问题出在我的URL正则表达式中。我在(?P[\w-]+)
中没有-
。谢谢
<form action="{% url 'team_public_profile' team_name_slug=team_name_slug %}">