Джанго инкремент просмотров + 1 - PullRequest
1 голос
/ 05 марта 2011

Я не знаю, почему на этот раз я не могу показать «количество просмотров» предметов, я делал это раньше, но в этом проекте я не могу

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)

Не могу представить, почему

Спасибо, ребята

1 Ответ

5 голосов
/ 05 марта 2011

Я не думаю, что вы можете использовать F(), как это. Он предназначен для использования в filter выражениях, где вы можете использовать его для сравнения одного поля с другим полем в той же модели, и в update выражениях, где вы можете увеличивать поле на месте:

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

но я не понимаю, почему вы пытаетесь использовать его здесь, где у вас уже есть объект. Проще просто ссылаться на атрибут напрямую:

object.views = object.views + 1

или даже проще:

object.views += 1
...