2011-03-05 13 views
1

私は、この時間は私が、私は前にこれをやっていた項目の「ビューの数を」表示しカントなぜ知らないが、このプロジェクトでは、私はDjangoの増分ビュー+ 1

def getAuto(request,marca,slug,id): 
    from django.db.models import F 
    object = get_object_or_404(Robado,marca__slug=marca,modelo__slug=slug,pk=id,publico=True) 
    object.views= F('views')+1 
    object.save() 

template.html

をカント
views: {{object.views}} 

template.htmlが表示されている:

(+: (DEFAULT:), 1) 

を私はなぜ

を想像カント

ありがとうございます

答えて

5

私はこのようにF()を使用することはできません。

Robado.objects.filter(foo=bar).update(views=F('views')+1) 

が、私はそうではない:それはあなたが同じモデルに、そしてあなたの場所にフィールドをインクリメントすることができupdate表現で別のフィールドで一つのフィールドを比較するために使用することができfilter表現で使用するためですなぜあなたが既にオブジェクトを持っているのか、ここでそれを使用しようとしている理由を見てください。それはちょうど、直接属性を参照する方が簡単です:

単に
object.views = object.views + 1 

またはそれ以上:

object.views += 1