我试着让它工作:
url(r'^index$', Index.as_view(), name='index'),
url(r'^index/(?P<pk>[0-9]+)$', Index.as_view(), name='index'),
我有
class Index(MyView):
派生自
class MyViewBase(TemplateView, DetectMobileMixin, TemplateResponseMixin, ContextMixin):
默认情况下它是渲染模板,但我为Index
class jsonMixin(object):
def get(self, *args, **kwargs):
if 'pk' in kwargs:
if self.request.is_ajax():
pk = kwargs['pk']
data = self.data_json(pk)
json_data = json.dumps(data)
return HttpResponse(json_data,content_type='application/json')
else:
self.context["pokaz_element"] = self.id
return super().get(*args, **kwargs)
class Index(MyViewBase, jsonMixin):
...
def data_json():
data = []
...
return data
但它似乎不起作用。 我不知道如何咬它。
我试图了解基于类的视图是如何工作的,从什么以及调用get
等函数派生的是什么,但手册并没有解释这一点。
我真的想在一个课程中做到这一点
答案 0 :(得分:1)
我认为你应该把mixin放在MyViewBase之前,因为Python方法查找。
class Index(jsonMixin, MyViewBase):
...
def data_json():
data = []
...
return data
希望帮助