Django 从同一项目中的另一个应用调用基于类的应用视图
我有一个基于类的观点:Django 从同一项目中的另一个应用调用基于类的应用视图,django,django-rest-framework,Django,Django Rest Framework,我有一个基于类的观点: class Browse(APIView): ''' Browse associations ''' permission_classes = [TokenHasReadWriteScope] def get(self,request,format=None): reply={} status=200 try: filter_options={} name=request.query_params.get('
class Browse(APIView):
'''
Browse associations
'''
permission_classes = [TokenHasReadWriteScope]
def get(self,request,format=None):
reply={}
status=200
try:
filter_options={}
name=request.query_params.get('name','').strip()
if name:
filter_options['name__icontains']=name
associations=Association.objects.filter(**filter_options)values('id','name')
page=request.query_params.get('page',1)
paginator=Paginator(associations,20)
data=paginator.page(page)
except PageNotAnInteger:
data=paginator.page(1)
except EmptyPage:
data=paginator.page(paginator.num_pages)
except:
status=400
reply['detail']=(_('ErrorProcessingRequest'))
if status==200:
reply['associations']=list(data)
reply['total_num_of_pages']=paginator.num_pages
reply['total_rows_found']=paginator.count
return JsonResponse(reply,status=status)
现在我有了另一个面向内部用户的应用程序(不同的登录名和所有登录名),但我仍然想列出关联。上面的代码很短,我不介意将其粘贴到那里,只是想知道是否可以通过调用另一个应用程序的Browse from views.py来避免干燥
目前,我从应用程序2中尝试了以下内容:
from app1.views import Browse
b=Browse()
#but I cant serialize it as it returns <app1.views.Browse object at 0x0000000006CE0E80> is not JSON serializable
从app1.views导入浏览
b=浏览()
#但是我不能序列化它,因为它返回的是不可JSON序列化的
随后解决了这个问题。我所要做的就是:
view = Browse.as_view()
return view(request)
就这样解决了。我所要做的就是:
view = Browse.as_view()
return view(request)
使用此导入语句
from appName.views import viewName as variable_Name
稍后将其命名为
return variable_Name(request)
使用此导入语句
from appName.views import viewName as variable_Name
稍后将其命名为
return variable_Name(request)
您也可以使用导入语句,如from appName.views导入viewName返回viewName(请求),但如果当前应用中已有同名视图,则最好避免使用此方法,并按照前面提到的方法执行。您也可以使用导入语句,如from appName.views导入viewName返回viewName(请求)但是如果你在当前的应用程序中已经有同名的视图,那么最好避免使用这种方法,并按照前面提到的方法进行操作