Как ограничить выбор ManyToManyField? - PullRequest
0 голосов
/ 04 июля 2019

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


class Alternative(models.Model):
    content = models.TextField()

    def __str__(self):
        snippet = self.content.split()
        if len(snippet) <= 5:
            return ' '.join(snippet)
        else:
            return ' '.join(snippet[:5]) + '...'


class Question(models.Model):
    statement = models.TextField()
    alternatives = models.ManyToManyField('Alternative')

    class Meta:
        verbose_name = _('question')
        verbose_name_plural = _('questions')

    def shuffle_alternatives(self):
        alternatives = list(self.alternatives.all())
        random.shuffle(alternatives)
        return alternatives

    def __str__(self):
        snippet = self.statement.split()
        if len(snippet) <= 5:
            return ' '.join(snippet)
        else:
            return ' '.join(snippet[:5]) + '...'

```python
...