Значение внешнего ключа django по умолчанию для пользователей - PullRequest
4 голосов
/ 24 января 2011

Я прочитал http://www.b -list.org / weblog / 2006 / jun / 06 / django-tips-extending-user-model / , но все еще возникают проблемы с переносом моего новогосхема БД с ForeignKey для пользователя в списке продуктов

упрощенная версия моего кода:

from django.contrib.auth.models import User
# other imports

class Product(models.Model):

 author = models.ForeignKey(User)
 # other product fields..

, но когда я пытаюсь мигрировать на Юг, это может бытьпроблема, так как моя пользовательская база данных не обрабатывается Югом (простите меня за новизну), я получаю ошибки, что необходимо установить значение по умолчанию:

_mysql_exceptions.OperationalError: (1067, "Invalid default value for 'author_id'")

Может кто-нибудь объяснить, что я делаю неправильно??В идеале я не хотел бы, чтобы значение по умолчанию для пользователя или по крайней мере ноль, ложь или 0 (но это, похоже, не работает) ..

большое спасибо,

Адам

Ответы [ 2 ]

0 голосов
/ 24 января 2011

В итоге мы пошли по простому маршруту и ​​полностью перенастроили таблицу продуктов, а также перешли с нуля, что сработало. Не уверен, что я чему-то научился (кроме как сбросить настройки приложения)!

0 голосов
/ 24 января 2011

Если вы хотите, чтобы было возможно иметь пустое значение для author, вам нужно определить ForeignKey с помощью null=True.Вы, вероятно, также захотите blank=True, так как это контролирует проверку в формах Django.

author = models.ForeignKey(User, null=True, blank=True)
...