Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从同一项目中的另一个应用调用基于类的应用视图_Django_Django Rest Framework - Fatal编程技术网

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(请求)但是如果你在当前的应用程序中已经有同名的视图,那么最好避免使用这种方法,并按照前面提到的方法进行操作