Общие виды Django List / Detail View на основе классов - PullRequest
1 голос
/ 20 октября 2011

У меня есть общий ListView, каждый элемент в моем HTML-списке ссылается на DetailView.

Теперь я хотел бы увеличивать поле "views" объекта MyModel (DetailView) при каждом щелчке.

Все, что мне кажется в DetailView под рукой, это get_context_data?Так как мне обновить мою модель в этом действии?

nb Размышляя вслух, должна ли это быть функциональность промежуточного программного обеспечения?

edit Хорошо, кажется, у меня есть get_object и get_querysetдоступны, но они пусты (print kwargs) .. также обновление целочисленного поля в данных контекста (которое кажется уродливым и нежелательным) запускается 3 раза одним щелчком мыши (3, 6, 9 и т. д.)

1 Ответ

1 голос
/ 20 октября 2011

Вы действительно можете сделать это в методе get_object, например:

class YourView(DetailView):

    queryset = YourModel.objects.all()

    def get_object(self):
        object = super(YourView, self).get_object()
        object.views = object.views + 1
        object.save()
        return object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...