名称“slugify”未定义
Posted
技术标签:
【中文标题】名称“slugify”未定义【英文标题】:name 'slugify' is not defined 【发布时间】:2020-07-31 09:29:22 【问题描述】:一旦用户登录到我的网站,他就可以写一篇文章并更新它。
然后我在添加允许人们制作 cmets 的功能方面取得了进展。我正处于可以从后端添加 cmets 并且它们将准确显示在前端的阶段。
现在,当我尝试更新帖子时,我收到一条错误消息。
我认为这是因为有一个外键将 cmets 类链接到 post 类。我尝试用谷歌搜索这个问题并查看 ***,但我并不完全相信我正在阅读的材料与我的问题远程相关。我正在努力解决这个问题,因为我几乎不明白/不知道问题是什么。
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now())
author = models.ForeignKey(User, on_delete=models.CASCADE)
url= models.SlugField(max_length=500, unique=True, blank=True)
def save(self, *args, **kwargs):
self.url= slugify(self.title)
super().save(*args, **kwargs)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('article_detail', kwargs='slug': self.slug)
class Comment(models.Model):
post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name='comments')
name = models.CharField(max_length=80)
email = models.EmailField()
body = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
class Meta:
ordering = ['created_on']
def __str__(self):
return 'Comment by '.format(self.body, self.name)
【问题讨论】:
你没有导入函数。 【参考方案1】:您需要导入 slugify(..)
function [Django-doc]:
from django.db import models
from django.utils.text import slugify
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now())
author = models.ForeignKey(User, on_delete=models.CASCADE)
url= models.SlugField(max_length=500, unique=True, blank=True)
def save(self, *args, **kwargs):
self.url= slugify(self.title)
super().save(*args, **kwargs)
# …
【讨论】:
我以前从未使用过'from django.utils.text import slugify'这行代码,在处理cmets时是否需要它?或者最近几个月编程语言发生了变化? 它帮助解决了问题,现在我有另一个问题。 @RossSymonds:如果使用函数/模块/类/...,首先需要导入它,除了一小部分内置项。以上是关于名称“slugify”未定义的主要内容,如果未能解决你的问题,请参考以下文章
颤振未定义的名称“上下文”。尝试将名称更正为已定义的名称,或定义名称