名称'slugify'未定义

时间:2020-04-17 19:19:22

标签: python django python-3.x slugify

用户登录到我的网站后,他可以写一个帖子并进行更新。

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

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

enter image description here

我认为这是因为有一个外键将注释类链接到发布类。我尝试使用Google搜索问题,并查看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)

1 个答案:

答案 0 :(得分: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)

# …