Приложение django со значением ошибки postgresql слишком длинное для изменения типа символа (1) - PullRequest
0 голосов
/ 13 ноября 2018

У меня проблема с приложением django и базой данных POSTGRESQL с полем slug.

Ошибка:

value too long for type character varying(1)

Я тестирую свое приложение с базой данных sqlite и всемработает нормально, но мое приложение не работает в базе данных postgresql.Любые идеи, почему это так?

Тест 1:

class MyModel(models.Model):
    name = models.CharField(max_length=254)
    slug_name = models.SlugField(max_length=254)

    def save(self, *args, **kwargs):
        self.slug_name = slugify(self.name)
        super(MyModel, self).save(*args, **kwargs)

Тест 2:

class MyModel(models.Model):
    name = models.TextField(max_length=500)
    slug_name = models.SlugField(max_length=500)

    def save(self, *args, **kwargs):
        self.slug_name = slugify(self.name)
        super(MyModel, self).save(*args, **kwargs)

Тест 3:

class MyModel(models.Model):
    name = models.TextField()
    slug_name = models.SlugField()

    def save(self, *args, **kwargs):
        self.slug_name = slugify(self.name)
        super(MyModel, self).save(*args, **kwargs)

1 Ответ

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

Вы пытаетесь вставить значение с более чем одним символом в поле, указанное как character varying(1). SQLite3 разрешит это (см. https://sqlite.org/datatype3.html), но PostgreSQL выдаст ошибку - то есть, он гарантирует, что вы указали максимальную длину как 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...