Добавить множественные значения в внешний ключ Django - PullRequest
0 голосов
/ 15 мая 2018

У меня следующая структура модели:

class Answer(models.Model):
    id = models.IntegerField(primary_key=True)
    answer_text = models.CharField(max_length=150)

    def __str__(self):
        return self.answer_text

class Question(models.Model):
    question_text = models.CharField(max_length=150)
    choices = models.ForeignKey(Answer, on_delete=models.CASCADE,
                                related_name='choices')
    answer = models.OneToOneField(Answer, on_delete=models.CASCADE)

    def __str__(self):
        return self.question_text

Я зарегистрировал обе модели на уровне администратора.Но когда я пытаюсь добавить несколько вариантов ответа на вопрос в админке, он перечисляет любые другие ответы.

enter image description here См. Прикрепленный снимок экрана.Я не могу добавить несколько вариантов ответа на вопрос.Когда я нажимаю зеленую кнопку +, она не отображает все возможные ответы.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Вы можете использовать в этом случае ManyToManyField.Это позволяет вам связать несколько вариантов ответов с разными вопросами одновременно:

choices = models.ManyToManyField(Answer, related_name='choices')
0 голосов
/ 15 мая 2018

Ваш внешний ключ неверен. Модель, в которой определено поле, является стороной «многие» отношения «один ко многим».

Для вопроса с несколькими ответами ФК должен жить с Ответом, указывающим на Вопрос.

Затем вы можете использовать встроенную функцию администратора, чтобы определить несколько ответов на одной странице с вопросом.

...