2017-01-24 3 views
0

を表示するためにクエリを使用する方法I以下のモデルがあります:Djangoのフォーム:正しいオプション

class QuestionForm(forms.ModelForm): 
    class Meta: 
     model = Question 
     fields = ['id','question_type','category','name','author','quiz',] 
     widgets = {'id': forms.HiddenInput(), 
        'author': forms.HiddenInput(), 
        'quiz': forms.HiddenInput(), 
        'name': forms.TextInput(attrs={'class': 'form-control'}), 
        'question_type' :forms.Select(attrs={'class': 'form-control'}), 
        'category' :forms.Select(attrs={'class': 'form-control'}), 
     } 

class Question(models.Model): 
    name = RichTextField (
     verbose_name = 'Question' 
     ) 
    QUESTION_TYPE = (
     ('Multi', 'Multiple Choice (one correct answer)'), 
     ('Check', 'Multiple Answers') 
    ) 
    question_type = models.CharField(
     default   = "Multi", 
     max_length  = 7, 
     verbose_name = "Question Type", 
     choices   = QUESTION_TYPE) 

    category = models.ForeignKey(
     Category, 
     help_text  = 'Category for this Question', 
     null   = True 
     ) 
    author = models.ForeignKey(
     User, 
    ) 
    quiz = models.ForeignKey (
     Quiz, 
    ) 

    def __unicode__(self): 
     return u'%s' % (self.name) 

私はので、私はこのフォームを持ってそれでDjangoのフォームを使用しようとしています

カテゴリモデルが特定のクイズに関連付けられていて、質問がリンクされているクイズのカテゴリのみが必要な場合を除き、正常に動作します。

class Category(models.Model): 
    name = models.CharField (
     max_length = 30, 
     verbose_name = "Question Categories", 
    ) 
    quiz = models.ForeignKey (
     Quiz, 
     verbose_name = 'Quiz', 
    ) 
    def __unicode__(self): 
     return u'%s' % (self.name) 

私は、フォームを介してユーザに提示Categoryモデルを制限するが、私はどのようにうまくいかないことができる方法うまくしようとしています。大いに感謝します。

答えて

0

あなたは、以下のような何かを試みることができる:

q_info = Question.objects.get(id=question_id) 
Q = QuestionForm(instance=q_info) 
Q.fields['category'].queryset = Category.objects.filter(condition) 
+0

パーフェクト。ありがとうございました – HenryM

関連する問題