2013-07-26 2 views
0

У меня есть следующий фрагмент кода в одном из моих моделей:Юг Авто-мигрирует Добавление ошибочного Уникального Constraint

channel = models.OneToOneField(Channel, related_name='stories', null=True, blank=True, unique=False) 

Смотрите на unique=False? Ну, когда я использую на юг, чтобы создать автоматическую миграцию, он хочет, чтобы добавить уникальное ограничение:

./manage.py schemamigration core --auto 
~ Changed field channel on core.Story 
+ Added unique constraint for ['channel'] on core.Story 

Что дает !?

ответ

0

Это Джанго, а не Юг. Бытие unique встроено в определение OneToOneField. (Вы можете увидеть ее в исходном коде here.)

Если unique ложно, то есть может быть больше, чем один Story с тем же Channel. Это отношения ManyToOne, поэтому вы, вероятно, захотите, чтобы это было поле ForeignKey.

+0

Новая проблема: я изменил поле на ForeignKey, и теперь получаю эту ошибку с юга: 'Поле Story.channel 'не имеет значения по умолчанию, но не является NULL'. Почему бы это сказать, если у меня есть «null = True»? – threejeez

+0

Я предполагаю, что у Юга возникает проблема с попыткой изменить тип поля. В качестве теста попробуйте вместо этого добавить поле _new_ с теми же параметрами и посмотреть, есть ли ошибка. –