Джанго: модели с обратными инородными клавишами? - PullRequest
0 голосов
/ 07 октября 2010

У меня проблема с курицей и яйцом. Во-первых, у меня есть класс userprofile, основанный на пользовательской модели django по умолчанию.

class UserProfile(models.Model):
    def __unicode__(self):
        return self.user.username
    user = models.OneToOneField(User, unique=True)
    exam = models.ForeignKey('questions.Exam', null=True)

Далее у меня экзамен

class Exam(models.Model):
    def __unicode__(self):
        return self.id
    user = models.ForeignKey(UserProfile)

Модели UserProfile и Exam находятся в разных приложениях. Тем не менее, они оба имеют иностранные ключи друг к другу. Я знаю его плохой дизайн, но это мое особое требование в моем случае. Однако UserProfile Foreignkey для экзамена может быть нулевым. Но всякий раз, когда я пытаюсь создать экзамен в Admin, я получаю сообщение о том, что «UserProfile» является обязательным для заполнения И когда я пытаюсь создать пользователя, происходит обратное. Есть ли способ выйти из этого тупика? Или я должен изменить дизайн моего приложения?

1 Ответ

1 голос
/ 07 октября 2010

я должен изменить дизайн моего приложения?

Почти наверняка.Однако эта проблема вызвана тем, что у вас есть null=True, который правильно настраивает базу данных, чтобы разрешить null s в поле внешнего ключа, но вы не добавили blank=True, что Django используетпроверить правильность записей.Добавьте это, и эта часть, по крайней мере, должна работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...