我在Linode中使用djangorest框架创建了一个API服务器。现在,我想检查每个请求的数量和响应代码,我想获取我的api的统计信息。我该怎么做?非常感谢。 最佳答案 DRFTracking是跟踪对DRFAPIView请求的实用程序,它可能适合您:安装:pipinstalldrf-tracking应用迁移:pythonmanage.pymigrate将以下内容添加到您的APIView中:fromrest_frameworkimportgenericsfromrest_framework_tracking.mixinsimpor
我已经序列化了我的一个模型,其中有一个外键。我得到'Parent'objectisnotiterable模型.pyclassParent(models.Model):#ParentdataclassChild(models.Model):parent=ForeignKey(Parent)序列化器.pyclassChildSerializers(serializers.ModelSerializer):parent=serializers.RelatedField(many=True)classMeta:model=ReportFieldfields=('id','parent')API
我有这个:classGenericCharacterFieldMixin():attributes=serializers.SerializerMethodField('character_attribute')skills=serializers.SerializerMethodField('character_skill')defcharacter_attribute(self,obj):character_attribute_fields={}character_attribute_fields['mental']={str(trait_item.get()):trait_ite
当GET请求到达/obj/1的API后端时我检查自定义权限类以查看用户是否具有访问权限,如果没有,则返回403。但是,我想附加对象ID,以便用户可以单击前端的按钮来请求访问。我当前的实现是覆盖retrieve方法并在那里“手动”检查权限。简化的权限classCustomPerm(...):defhas_object_permission(...):returnrequest.user.is_staffView集classCustomViewSet(...):model=Modelpermission_classes=(CustomPerm,)defretrieve(self,reque
网址.pyfromdjango.conf.urlsimporturlfromdjango.contribimportadminfromdjango.confimportsettingsfromdjango.conf.urls.staticimportstaticfrom.viewsimporthomefromposts.viewsimportPostListViewurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^$',PostListView.as_view(),name='home'),url(r'^post/',include
我有以下代码:问题是当我尝试访问用户登录/时出现错误:“CSRF失败:CSRFcookie未设置。”我能做什么?我正在使用djangorest框架。urls.py:url(r'^user-login/$',csrf_exempt(LoginView.as_view()),name='user-login'),views.py:classLoginView(APIView):"""Listallsnippets,orcreateanewsnippet."""defget(self,request,format=None):startups=Startup.objects.all()ser
我正在为移动应用程序开发DjangoRestFramework后端。API是私有(private)的,只会在内部使用。可浏览的API可以方便地帮助开发人员处理项目,但我想阻止任何未设置为项目管理员的人使用可浏览的界面。我意识到可浏览的管理员不会授予用户本来不会拥有的任何权限,但它确实有一些安全灰色区域(例如,对于具有外键关系的模型,HTML选择器字段会填充所有除非您特别指示它不要这样做,否则数据库中可能存在相关对象。因为这个应用程序处理敏感的用户数据,我宁愿向公众公开尽可能小的表面积,以减少我自己潜在错误疏忽的风险。有没有什么方法可以为非管理员用户禁用可浏览的API,而不是为所有人禁用
我只想在给定query_params时返回model_info,否则它应该给出一些错误消息。我尝试了下面的代码,但是当名称未在查询参数中传递时,它给我keyerror。fromrest_framework.validatorsimportValidationErrorclassModelSerializer(serializers.ModelSerializer):classMeta:model=ModelNamefields=('name','abbreviation')defvalidate_name(self,value):ifvalue:returnvalueelse:rais
我有一个标准的DRF网络应用程序,可以为其中一条路线输出CSV数据。呈现整个CSV表示需要一段时间才能完成。数据集非常大,所以我想要一个流式HTTP响应,这样客户端就不会超时。但是使用https://github.com/mjumbewu/django-rest-framework-csv/blob/2ff49cff4b81827f3f450fd7d56827c9671c5140/rest_framework_csv/renderers.py#L197中提供的示例并没有完全做到这一点。数据仍然是一个很大的有效载荷,而不是被分block,客户端最终在接收到字节之前等待响应。结构类似如下:
我在DjangoRest框架中打开了分页,它看起来非常慢。Count看起来像是罪魁祸首,由于表中有数百万行,每次返回都需要数百毫秒。我正在使用postgresql作为数据库。有没有办法不计算行数并仍然使用分页?如果我手动过滤查询集,则在启用此功能之前性能很好。 最佳答案 问题是,用于计数的查询与用于获取数据的查询可能很复杂。这样比较浪费。PageNumberPagination在内部使用Django自己的Paginator。为了使计数查询更简单,请重写DRF使用的分页器类:fromdjango.core.paginatorimpor