社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django Slug只适用于一个单词,但当它超过一个单词时,它就会崩溃。

rosababy • 4 年前 • 611 次点击  

用一个像“酷”这样的小词就行了,但如果它像“不酷”,那么就行不通了,因为slug会让它不酷。

path('<slug>/', views.series_pg, name='series_detail'),
#MODELS.PY    
class Series(models.Model):
    name = models.CharField(max_length=128, unique=True)
    genre = models.CharField(max_length=128, default=1)
    tv_or_movie = models.CharField(max_length=128, default=1)
    period = models.CharField(max_length=128, default=1)
    descritpion = models.TextField()
    slug = models.SlugField(unique=True)



    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return "/%s/" %self.slug

#VIEWS.PY
def series_pg(request, slug):
    series = Series.objects.get(name=slug)

如果slug改变了原来的单词,那么它就不起作用了

编辑:

我的错误是

不在办公室工作/ 序列匹配查询不存在。

我加了“办公室”,但斯拉格让它成为办公室

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38348
 
611 次点击  
文章 [ 2 ]  |  最新文章 4 年前
wgarlock
Reply   •   1 楼
wgarlock    5 年前

“slug是一个东西的短标签,只包含字母、数字、下划线或连字符。它们通常用于URL。”

-Django文件

您使用的是什么上下文的slug字段?它将把“not cool”这样的空格转换为“not cool”,因为这就是它的目的。

shafik
Reply   •   2 楼
shafik    5 年前

Django Slug Field的工作原理与 not cool 那就把这个塞进去 not-cool

在你的视图中.py你想过滤 name 。 说它的名字有价值 不酷 但在斯拉格菲尔德,你保持价值 不酷 . 然后你试着把它过滤掉 .get(name=slug) 这意味着 .get(not cool=not-cool) . 因此,查询集不会返回任何匹配的对象,也不会与URL匹配。

你能做到的

def series_pg(request, slug):
    series = Series.objects.get(slug=slug)