首页 文章

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

提问于
浏览
1

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

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

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

注:大声思考,这应该是中间件功能吗?

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

1 回答

  • 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
    

相关问题