Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как добавить дополнительное поле в моделе Django ? [RSS Feed]

#1 Июнь 17, 2012 13:38:54

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

Как добавить дополнительное поле в моделе 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



Отредактировано Saturn (Июнь 17, 2012 13:39:58)

Офлайн

#2 Июнь 17, 2012 13:47:12

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

Какую ошибку выдает django, мы должны сами догадаться? В какой момент вы добавляете поле, мы тоже должны угадать? Опишите полностью, что происходит.

В общем, ладно. Используйте South, учите английский и пользуйтесь поисковиком.



Отредактировано fata1ex (Июнь 17, 2012 13:52:22)

Офлайн

#3 Июнь 17, 2012 14:15:57

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

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

fata1ex
то что учить английский надо это я и без Вас знаю.



Офлайн

#4 Июнь 17, 2012 14:20:11

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

Используйте South.



Офлайн

#5 Июнь 17, 2012 15:33:16

fashust
От:
Зарегистрирован: 2011-07-17
Сообщения: 30
Репутация: +  3  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

Если South не используете, то

ALTER TABLE post ADD description VARCHAR(255);



import this

Отредактировано fashust (Июнь 17, 2012 15:34:30)

Офлайн

#6 Июнь 17, 2012 15:39:25

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

Спасибо всем. South - может и хорош но лучше уже классика SQL.
fashust то что нужно.



Офлайн

#7 Июнь 17, 2012 16:18:32

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

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

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

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



Офлайн

#8 Июнь 17, 2012 16:41:11

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

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

> schemamigration app –auto
> migrate app



Офлайн

#9 Июнь 17, 2012 19:55:29

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

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



Офлайн

#10 Июнь 17, 2012 22:05:50

fashust
От:
Зарегистрирован: 2011-07-17
Сообщения: 30
Репутация: +  3  -
Профиль   Отправить e-mail  

Как добавить дополнительное поле в моделе Django ?

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

> schemamigration app –auto
> migrate app

Согласен с вами, что south - это прекрасно. Но ручками добавить или поменять поле в бд надо тоже уметь. А задумываться о том какая там бд и какой для нее sql c наличием гугла под рукой вроде не такая уж и проблема))



import this

Офлайн

  • Начало
  • » Django
  • » Как добавить дополнительное поле в моделе Django ?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version