【问题标题】:Class based view and call function to script基于类的视图和脚本调用函数
【发布时间】:2018-01-24 16:38:23
【问题描述】:

我正在学习 django,但遇到了一个我不知道如何调试的问题。

我有一个 hallow_detail.html 模板,其中显示了这样的按钮:

<button type="button" href="{% url 'sign'%}" class="btn btn-primary btn-lg btn-block">Sign this Document</button> 

模板是一个详细视图模型视图:

class LobbyDetailView(generic.DetailView):
    model = Lobby

我希望按钮执行一些需要用户连接和当前大厅实例的代码

由于基于类的视图,我如何使用按钮?

提前致谢。

【问题讨论】:

    标签: django django-models django-views django-urls


    【解决方案1】:

    在您的视图中使用dispatch() 方法。 get()post() 方法也可用。

    class LobbyDetailViewButton(generic.DetailView):
        # this should be where the button url connects
        model = Lobby
    
        # use dispatch for your code
        def dispatch(self,request,*args,**kwargs):
            lobby_object = self.get_object()
            user_object = request.user
            # do stuff with lobby_object & user_object
            return super().dispatch(request,*args, **kwargs) 
            # can also return an http request
    

    【讨论】:

    • 嗨杰里米,调度是如何工作的?我正在努力理解这件事。
    • 文档很好,可能比我更好地解释它:docs.djangoproject.com/en/2.0/ref/class-based-views/base/… 但也要确保你清楚 python 对象中的方法是如何工作的——def(dispatch) 是一种方法对象LobbyDetailViewButton
    猜你喜欢
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多