Django获取类中的请求获取参数

Django获取类中的请求获取参数,django,django-models,Django,Django Models,我有以下功能: class getAjaxView(BaseDatatableView): model = Roles columns = model.columns order_columns = model.order_columns max_display_length = model.max_display_length def render_column(self, row, column): if column == 'id

我有以下功能:

class getAjaxView(BaseDatatableView):

    model = Roles
    columns = model.columns
    order_columns = model.order_columns
    max_display_length = model.max_display_length

    def render_column(self, row, column):
        if column == 'id':
            return '<input type="checkbox" name="cid[]" value="{{$id}}" class="cid_checkbox flat"/>'
        else:
            return super(getAjaxView, self).render_column(row, column)
类getAjaxView(BaseDatatableView):
模型=角色
columns=model.columns
order\u columns=model.order\u columns
最大显示长度=model.max\u显示长度
def render_列(自身、行、列):
如果列=='id':
返回“”
其他:
返回super(getAjaxView,self).render_列(行,列)
在这里,模型(例如:角色)应该来自一个GET参数值,并且它将动态变化。如何在函数定义和初始化变量之前访问此GET参数

我从未使用过,但是如果它基于djangos CBV(基于类的视图),那么您应该能够访问如下请求数据:

def render_column(self, row, column):
    ...
    print(self.request.GET)
    ...

编辑:显然,您希望根据
请求的值动态定义CBV的
模型
属性。获取
参数

现在,您可以尝试覆盖
dispatch
方法并使用该函数

from django.apps import apps

class AjaxView(BaseDatatableView):

    def dispatch(self, request, *args, **kwargs):
        self.model = apps.get_model(
            app_label=request.GET.get('app_label', ''),
            model_name=request.GET.get('model_name', ''))

        self.columns = self.model.columns
        self.order_columns = self.model.order_columns
        self.max_display_length = self.model.max_display_length

        return super().dispatch(request, *args, **kwargs)

提示一下:python中的类名通常是大写的,不使用动词。您的
getAjaxView
可以重命名为
AjaxView
。当然可以。谢谢你注意到这一点。我知道,我可以在def中这样服用。但是,我想得到这个请求。在那之前得到参数。我需要使用模型获取列、排序列等,以使该render\u列正常工作。@JintoAntony我更新了我的答案。如果这能让你更接近解决问题,请告诉我。是的。这是正确和有效的。我在找像这样的东西,却找不到。也许我错过了。你能给我指一些参考资料/文档吗。。?我的意思是使用这篇文章…?@JintoAntony我只在我编辑的答案中链接的stackoverflow问题中找到了它。我不确定我是否在django文档中看到过类似的东西。