3

djangoでクイズアプリを作っています。ここにモデルがあります:

class Quiz(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    publish = models.BooleanField(default=False)

    def __unicode__(self):
        return self.title

class Question(models.Model):
    quiz = models.ForeignKey(Quiz)
    question = models.TextField()
    hint = models.TextField()

    def __unicode__(self):
        return self.question

class Option(models.Model):
    question = models.ForeignKey(Question)
    option = models.CharField(max_length=250)
    correct = models.BooleanField(default=False)

    def __unicode__(self):
        return self.title

各質問の答えは 1 つだけです。ここで問題が発生します。各質問に対して、オプションの 1 つだけが correct=True を持つことができるように、オプションモデルの管理フォームを記述する方法を理解できませんでした。

各質問にラジオ ボタンを使用できますが、1 つの外部キーに対して 1 つだけを選択できるように制限する方法がわかりません。

4

6 に答える 6

1

逆ルックアップでそれを行う方法がわかりません。

これはまさにあなたが望むものではないことはわかっていますが、かなり近いものです。admin.py でこれを試してみてください。

admin.site.register(Quiz)
#admin.site.register(Option) #Include this if required

class OptionInline(admin.TabularInline):
    model = Option

@admin.register(Question)
    class QuestionAdmin(admin.ModelAdmin):
    inlines = [
        OptionInline,
    ]
于 2015-12-24T14:44:09.560 に答える