我的模型中有名称由空格分隔。示例: Don Joe ,它的k..i希望如此,但在网址中显示的内容如此 https://example.com/details/Don Joe 我想要用加号 + 替换该空格。
这是 urls.py
的一部分url(r'^(?P<ps_name>.+)$', views.details, name='details'),
这是我 main.html
的一部分 {% for ps in users %}
<tr>
<td>
<a href="{% url 'main:details' ps_name=ps.ps_name %}">{{ ps.ps_name }}</a>
</td>
</tr>
{% endfor %}
这是我的views.py
的一部分def details(request, ps_name):
ps = Seotube.objects.filter(ps_name=ps_name)
name = str(ps_name)
return render(request, 'main/details.html', {'name': name,
'pornstars': ps})
我确实希望将名称保持为正常,只有在我想要有加号而不是空格的网址中使用空格。因为我也在 details.html
中调用了该名称{% if name %}
<h1> {{ name }}</h1>
{% endif %}
谢谢
答案 0 :(得分:1)
您可能应该为模型添加单独的字段,例如slug
,然后可用于构建网址。
我建议使用名为SlugField的Django内置模型字段,然后覆盖模型的save
方法,以便在更新该模型的实例时填充字段的值:
# models.py
from django.utils.text import slugify
class YourModel(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=255, blank=True)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(YourModel, self).save(*args, **kwargs)
如果您确实想使用+
而不是-
(slugify
实用程序将替换所有空格),您可以使用自定义逻辑来更新值