Найти - Пользователи
Полная версия: Как добавить дополнительное поле в моделе Django ?
Начало » Django » Как добавить дополнительное поле в моделе Django ?
1 2
Saturn
Как добавить дополнительное поле в моделе Django ?
Я пытаюсь добавить поле description, но django выдает ошибку.
Код с модели:
class Post(models.Model):
    category     =  models.ForeignKey(Category)
    date         =  models.DateField('auto_now_add')
    title        =  models.CharField(max_length=150)
#    description = models.CharField(max_length=1000)
    text         =  models.TextField()
    see          =  models.NullBooleanField()
    
    def __unicode__(self):
        return self.title
fata1ex
Какую ошибку выдает django, мы должны сами догадаться? В какой момент вы добавляете поле, мы тоже должны угадать? Опишите полностью, что происходит.

В общем, ладно. Используйте South, учите английский и пользуйтесь поисковиком.
Saturn
fata1ex
Я добавляю когда уже создана БД и в таблице Post есть поля (приведенные выше) кроме description, который я пытаюсь добавить. Потом запускаю python manage.py syncdb, но поле не добавляется.
Вопрос, я все сделал правильно чтобы добавить поле или что-то упустил ?

fata1ex
то что учить английский надо это я и без Вас знаю.
fata1ex
Используйте South.
fashust
Если South не используете, то
ALTER TABLE post ADD description VARCHAR(255);
Saturn
Спасибо всем. South - может и хорош но лучше уже классика SQL.
fashust то что нужно.
ziro
Классика SQL может и лучше, но еще лучше понимать, что в CharField аргумент max_length является зависимым от БД, ибо, например MySQL позволяет устанавливать длину поля varchar только 255 символов. Больше вы просто не сможете.

Конкретно в Вашем случае, если действительно нужно использовать max_length=1000, ставьте TextField(max_length=1000).

А South таки действительно не причем.
fata1ex
ziro
А South таки действительно не причем.
Почему же? С помощью него этот вопрос решается практически мгновенно, причем не надо задумываться о том, какая используется БД, не надо писать SQL-код, который иногда может не совпадать с тем, который формирует Django.

> schemamigration app –auto
> migrate app
Saturn
ziro
Классика SQL может и лучше, но еще лучше понимать, что в CharField аргумент max_length является зависимым от БД, ибо, например MySQL позволяет устанавливать длину поля varchar только 255 символов. Больше вы просто не сможете.

Конкретно в Вашем случае, если действительно нужно использовать max_length=1000, ставьте TextField(max_length=1000).

А South таки действительно не причем.

После 5.0.3 версии можно сохранять до 65,535
Вот http://dev.mysql.com/doc/refman/5.0/en/char.html
fashust
fata1ex
ziro
А South таки действительно не причем.
Почему же? С помощью него этот вопрос решается практически мгновенно, причем не надо задумываться о том, какая используется БД, не надо писать SQL-код, который иногда может не совпадать с тем, который формирует Django.

> schemamigration app –auto
> migrate app

Согласен с вами, что south - это прекрасно. Но ручками добавить или поменять поле в бд надо тоже уметь. А задумываться о том какая там бд и какой для нее sql c наличием гугла под рукой вроде не такая уж и проблема))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB