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文档中看到过类似的东西。