Python 名称';slugify';没有定义

Python 名称';slugify';没有定义,python,django,python-3.x,slugify,Python,Django,Python 3.x,Slugify,一旦用户登录到我的网站,他就可以写一篇文章并更新它 然后我在添加允许人们发表评论的功能方面取得了进展。我正处于这样一个阶段,我可以从后端添加评论,它们将准确地显示在前端 现在,当我尝试更新帖子时,会收到一条错误消息 我假设这是因为有一个外键将comments类链接到post类。我试着用谷歌搜索这个问题并查看StackOverflow,但我并不完全相信我正在阅读的材料与我的问题有着千丝万缕的联系。我正在努力解决问题,因为我几乎不了解/不知道问题是什么 # Create your mode

一旦用户登录到我的网站,他就可以写一篇文章并更新它

然后我在添加允许人们发表评论的功能方面取得了进展。我正处于这样一个阶段,我可以从后端添加评论,它们将准确地显示在前端

现在,当我尝试更新帖子时,会收到一条错误消息

我假设这是因为有一个外键将comments类链接到post类。我试着用谷歌搜索这个问题并查看StackOverflow,但我并不完全相信我正在阅读的材料与我的问题有着千丝万缕的联系。我正在努力解决问题,因为我几乎不了解/不知道问题是什么

    # 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)
您需要导入:

来自django.db导入模型的

从django.utils.text导入slugify
班级职务(models.Model):
title=models.CharField(最大长度=100)
content=models.TextField()
date\u posted=models.DateTimeField(默认值=timezone.now())
author=models.ForeignKey(用户,on_delete=models.CASCADE)
url=models.SlugField(最大长度=500,唯一性=True,空白=True)
def保存(自身、*args、**kwargs):
self.url=slugify(self.title)
super().save(*args,**kwargs)

#…
您没有导入函数。我以前从未使用过代码行“from django.utils.text import slagify”,处理注释时是否需要它?或者编程语言在过去几个月里发生了变化吗?它帮助解决了问题,现在我有了另一个问题。@RossSymonds:如果您使用函数/模块/类/…,您首先需要导入它,除了一小部分内置项。
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)

# …