Django SlugField «Это поле обязательно для заполнения» ошибка - PullRequest
0 голосов
/ 10 ноября 2018

В моем проекте django есть модель блога, для которой я хочу создать слаг для заголовка:

class Blog(models.Model):
    title = models.CharField(default='', max_length=100, verbose_name=u'عنوان')
    slug = models.SlugField(max_length=100, allow_unicode=True)
    # other stuffs
    def save(self, *args, **kwargs):
        self.slug = slugify(self.title, allow_unicode=True)
        super(Blog, self).save(*args, **kwargs)

    def __str__(self):
        return self.slug

В админке django я не заполняю поле слагов, и когда я нажимаю кнопку сохранения, он говорит:

Это поле обязательно для заполнения.

Разве мой код не предполагает автоматического создания слагов? Есть ли что-то еще, что я должен сделать?

1 Ответ

0 голосов
/ 10 ноября 2018

Вы должны установить blank=True для своего поля слагов. Таким образом, это не будет требоваться, и при запуске метода сохранения будет установлен заглушенный заголовок.

class Blog(models.Model):
    title = models.CharField(default='', max_length=100, verbose_name=u'عنوان')
    slug = models.SlugField(max_length=100, allow_unicode=True, blank=True)
...