Django通用列表/详细信息类视图

时间:2011-10-20 12:00:19

标签: python django

我有一个Generic ListView,我的html列表中的每个项目都链接到DetailView。

现在我想在每次点击时增加MyModel(DetailView)对象“views”-field(integerfield)。

我在DetailView中看到的所有东西都是get_context_data?那么如何更新我的模型呢?

n.b。大声思考,这应该是中间件功能吗?

修改 好吧,好像我确实有get_object和get_queryset可用但是那些是空的(打印kwargs)..也更新上下文数据中的整数字段(看起来很丑陋和不需要的)一次点击运行3次(3,6,9等)< / p>

1 个答案:

答案 0 :(得分:1)

您确实可以在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