Подтвердить что ты не робот

Разрешить 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". Я что-то делаю неправильно?

4b9b3361

Ответ 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