2017-03-22 2 views
0

私はクエリを実行していて、すべてのフィールドを表示したいとします。djangoクエリがすべてのフィールドを返さない

question = Question.objects.get(pk=question_id) 
モデルで

class Question(models.Model): 
    #id = models.AutoField(primary_key=True) 
    question_text = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 
    def __str__(self): 
     return self.question_text 

私はそれは私がテキストだけを問う返すビューのデータを印刷するとき、私はまた、IDと日付を表示したいです。

テンプレート

{{ question }} 

答えて

1
question = Question.objects.filter(pk=question_id) 

テンプレート

{% for x in question %} 
    {{x.pub_date}} 
{% endfor %} 

またはあなたの方法の代わりに、あなたが__unicode__を使用する必要があります__str__テンプレート {{}} question.pub_date

+0

それはあなた – Harman

+0

おかげで働いているあなたは、 'id'を持っている場合、代わりにfilter''の 'GET'方法を使用することがはるかに良いと高速です。 –

+0

しかし、私は彼が初心者だと思います。だから両方のオプションは彼のために良いです:) – marin

3

あなたは{{ question.question_text }}のように、テンプレート内の属性を指定する必要があります。 {{ question }}を使用しているのは、repr(デフォルトではstr)がquestion_textという属性として定義されているためです。

0

。参照:Python __str__ versus __unicode__

また、テンプレート内の各フィールドに別々にアクセスする必要がありますが、id、text、dateの文字列だけを取得する場合は、メソッドを変更してすべてを単一の文字列として返します。

def __unicode__(self): return unicode(self.id)+", "+self.question_text+", "+unicode(self.pub_date)

関連する問題