Разрешить null для внешнего ключа для пользователя. Джанго
У меня есть эта модель
class Vacancy(models.Model):
user = models.ForeignKey(User, null=True, blank=True, default = None)
name = models.CharField(max_length=64)
Когда в admin я пытаюсь создать вакансию без пользователя. И это вызывает ошибку: "club_vacancy.user_id может не быть NULL".
Я что-то делаю неправильно?
Ответы
Ответ 1
club_vacancy.user_id may not be NULL
Похоже на ошибку в вашей базе данных, а не на Django.
Скорее всего, вы добавили null=True
после запуска manage.py syncdb
. Вам нужно будет изменить схему базы данных, чтобы разрешить нулевые значения в этом столбце.
Ответ 2
Помимо юга, другой вариант заключается в использовании эволюции django для изменений схемы.
http://code.google.com/p/django-evolution/
Установите его перед внесением изменений в db. Затем запустите
python manage.py evolve --hint --execute
Убедитесь, что если вы добавите новое поле, вы разрешите nulls (null=True
), или иначе эволюция даст вам сообщение об ошибке.
Ответ 3
вам нужно reset вашу таблицу базы данных (так как только syncdb не обновляет поля, которые являются alredy, созданные с помощью null = False)
./manage.py reset your_app
ИЛИ если есть некоторые данные, которые вы не хотите потерять, используйте команды SQL, чтобы удалить флаг NOT NULL