имя 'slugify' не определено - PullRequest
1 голос
/ 17 апреля 2020

Как только пользователь зашел на мой сайт, он может написать сообщение и обновить его.

Тогда я делал успехи в добавлении функциональности, которая позволяла людям комментировать. Я был на этапе, когда я мог добавлять комментарии из серверной части, и они были бы точно отображены в пользовательской части.

Теперь, когда я пытаюсь обновить сообщения, я получаю сообщение об ошибке.

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 Ответ

1 голос
/ 17 апреля 2020

Вам необходимо импортировать slugify(..) функцию [Django -doc] :

from django.db import models
from django.utils.text import <b>slugify</b>

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= <b>slugify(</b>self.title<b>)</b>
        super().save(*args, **kwargs)

# &hellip;
...