这是一个新手问题。我看到Django rest框架的可浏览API能够检测序列化程序中定义的只读字段,并将它们从提交给用户进行PUT/POST操作的HTML表单中排除
这里使用的机制是什么?我可以使用它向远程客户端指示只读字段吗?在JSON对象本身中,我看不到只读字段和可写字段之间的格式有任何差异,因此我猜测其中涉及一些元数据,但在文档中找不到任何内容
我正在使用Django版本1.7和Django rest框架版本3.1.3。U应该使用,它是一个记录Django rest框架API的应用程序
在
基本上,viewset的必填字段基于models.py文件。如果我使用create方法,并且在models.py中定义为blank=True和null=True,则此字段不是必需的
但是如何定义models.py中不需要此字段,而是viewset.py中需要此字段?实际上,序列化程序将此字段的required设置为True,从而需要此字段
如果不想显式定义字段,可以利用
免责声明:-我是初学者。
我正在尝试构建一个Django REST API,它可以支持所有CRUD操作。
我能够从API调用(127.0.0.1/API/get)中获取数据,也能够从UI中手动添加、修改和删除记录(在get请求之后)。
我已经在模板目录中创建了一个表单,该表单接受用户的输入,并在提交时发送到同一url(127.0.0.1/api/get),但数据未保存,而是返回以下内容:-
HTTP 400错误请求
允许:获取、发布、头、选项
内容类型:application/json
更改:接
我最近开始学习Djangorest框架,我遇到了两种创建模型实例的方法,一种是通过Djangorest框架CreateAPIView,另一种是CreateModelMixin。所以我想知道它们之间的区别,以及执行相同功能的其他mixin和视图之间的区别。这里是区别:mixin如代码注释中所述,是基于类的通用视图的基本构建块-它们基本上是视图不可知的python对象,这意味着您将无法单独使用CreateModelMixin来实际创建模型。您需要在新视图上继承它,而CreateAPIView正是这样
我想允许用户在视图中获取(列表)、发布和删除方法?在这种情况下,最好的方法是什么?有不同的方法
获取列表:get\u queryset(self)
保存:perform\u create(self,serializer)
要更新:执行更新(self,serializer)
要删除:perform\u destroy(self,instance)
您可以参考Django rest框架的文档:有不同的方法
获取列表:get\u queryset(self)
保存:perform\u create(s
在Django REST框架中,在Django模型中给定一个字段,该字段具有null=True和blank=True,并且在序列化程序中该字段为required=False,有没有办法让可浏览API使用空值呈现HTML下拉列表?使用JSON可以将字段设置为null,但我不知道如何通过HTML表单也允许这样做
图片中说:
我目前有:
我想去:找到了。简化:
class SwitchPortSerializer(serializers.HyperlinkedModelSerializer):
所以我对用户有两种不同的API视图,一种是超级用户可以使用的,另一种是普通用户可以使用的
目前的问题是,默认情况下,我的超链接将用于auth_users视图,而不是用户视图
i、 e
而不是
'url': 'localhost:8000/users/5/'
以下是相关文件的摘录
*URL*
class basic_user_serializer(serializers.HyperlinkedModelSerializer):
url = HyperlinkedIdentityField
在ListAPIView中,我尝试重载类以呈现HTML和JSON,如下所示。对于JSON呈现,需要提供serializer.data以响应呈现JSON输出。对于HTML呈现,需要提供dict类型的上下文数据和模板名称,以便响应呈现HTML
为了重用现有的rest框架代码,我尝试提取rest框架已经序列化的数据,并一次性使用序列化的数据和模板名称重载响应数据。由于提供的数据不是dict类型,因此结果是HTML模板未按预期呈现
class UserProfileList(generics.ListA
因此,我想使用url筛选所有销售发票。。e、 g
/api/v1/invoice/sales/
我认为最好的方法是在视图集中使用@link方法。这是我的密码
@link()
def sales(self, request, pk):
qs = Invoice.objects.filter(is_sales=True)
serializer = InvoiceSerializer(qs)
return Response(serializer.data)
但是当我转到“/
如何使用django rest框架将URL参数(比如,视图函数)解析为引用的模型对象(或queryset)?我知道如何使用ModelViewSet/Serializer对来允许对特定模型对象执行CRUD操作,但是对于其他一些以两个模型对象URL为参数的视图函数,该视图函数如何将这些URL转换为相应的查询集?显然,可以手动解析URL,提取URL的“模型”和“id”部分,并检索相应的查询集。但这似乎是django rest框架中的一个基本操作,当您在模型中有带有超链接模型序列化器和外键字段的Mode
我已经为jQueryUI自动完成设置了ListApiView。
它过滤正确,但结果用一些元数据包装
{
"count": 710,
"next": "http://127.0.0.1:8000/taxonomy/lookup/?term=hom&page=3",
"previous": "http://127.0.0.1:8000/taxonomy/lookup/?term=hom&page=1",
"results": [
文件规定:
在实例化序列化程序时,可以通过传递context参数来提供任意附加上下文
好的,让我们这样做:
serializer = AccountSerializer(account, context={'foo':'bar'})
class AccountSerializer(serializers.ModelSerializer):
custom_field = serializers.SerializerMethodField()
class Meta:
当我执行以下操作时,我得到了上述错误
class UserViewSet(generics.ListCreateAPIView):
"""
A viewset for viewing and editing user instances.
"""
models = User
serializer_class = UserSerializer
queryset = User.objects.filter(is_active=1) # See this
Django 2.1、python 3.6、Djangorest框架
当我转到下面的url时,我可以看到我的数据(很棒!)http://127.0.0.1:8000/api/cards/1这是我在api页面上看到的内容-
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": "1",
"
我试图从APIView获取序列化中的上下文,
如何从django rest框架中的APIView将上下文传递给Serailizer这是如何将上下文传递给序列化程序的,如果您手动实例化它的话
serializer=MySerializer(data=data,context={'request':'format':self.format\u-kwarg,self.request,'view':self})
当然,您可以将序列化程序中所需的任何其他数据添加到上下文词典中,但它通常包含请求对象、视图和
我正在创建一个健康记录管理系统,其中使用is_superuser和is_staff字段创建管理员用户。我在is_员工用户查看系统中的所有医院登记以及批准和拒绝登记到系统中的医院时遇到问题
我有以下两个视图,在一个特定的参数上,我需要在收到某些参数时向另一个视图发送补丁请求。然而,我得到以下错误,如何纠正这一点
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view,
but received a `<class 'requests.models.Response'>`
收到查询参数时调用patch_emp_mast,但由于前面提到的错
我在Django rest Framework(DRF v.3.12.1)项目中使用基于令牌的身份验证(通过dj rest auth 1.1.2)。在初始视图基础登录之后,服务器会发出一个令牌,客户端必须在每个请求中将该令牌包含在HTTP身份验证头中
我想做的是将令牌身份验证与服务器端会话相关联,类似于Django会话框架提供的功能。也就是说,我想创建一个可缓存的会话对象,该对象存储用户角色之类的信息,否则需要在每次请求时从数据库中检索这些信息
这个问题没有现成的解决方案,是吗?据我所知,Dja
简而言之:
我有一个序列化程序django rest框架,它有两个自定义字段,它们与我的模型的字段不直接对应,并且具有不同的名称。to_internal_value方法可能有效,但我不知道如何访问这些字段的post数据
如果你需要我的案子的更多细节:
我有一个django模型,看起来像这样:
class Requirement(models.Model):
job = models.ForeignKey('Job', related_name = 'requirement
我已经使用了令牌身份验证,它工作正常,即它正在验证用户,然后用户登录。但是在我的视图中,我为其中一个视图将权限类设置为IsAuthenticated,即使用户是经过身份验证的用户,也不允许对其进行身份验证。
下面是显示我已登录的屏幕截图(jadhav@gmail.com):
下一个标签上写着“未提供认证详细信息”:
有人能告诉我出了什么事吗?
好的,我将提供详细信息:
以下是我的设置:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSE
我有一个带有两个字段的序列化程序,如下所示:
first_installations_date = serializers.SerializerMethodField()
sec_installations_date = serializers.SerializerMethodField()
def get_first_installation_date(self, obj):
return self._extract_date(obj, key="first")
def get_f
我有一个会议模型。会议有一个用户参加。我想汇总参加会议的用户的所有会议,以显示在一些分析视图中
# models.py
class Meeting(models.Model):
user = models.ForeignKey(User)
# urls.py
router.register(
r"meetings-by-user", views.MeetingsByUserViewSet, basename="meeting")
...
我有一个包含3500个条目和外键的表
我正在使用客户端处理数据表:django rest框架和Ajax
加载最多需要10秒
有没有一种方法可以显示前10个条目(第一页结果)——让用户不会认为我的网站坏了,因为它花了太长时间——而其余条目则在后台加载
同时也在寻找负载速度的优化。
谢谢你抽出时间
编辑:
models.py
class Bibrest51(models.Model):
cadastro_id = models.AutoField(primary_key=True)
我正在尝试使用guide测试API的端点。具体来说,此块用于测试get请求:
class GetAllPuppiesTest(TestCase):
""" Test module for GET all puppies API """
def setUp(self):
Puppy.objects.create(
name='Casper', age=3, breed='Bull
我在django rest框架和oauth2上开发了一个类似博客的项目。我现在正在尝试分离资源服务器和身份验证服务器,如下所示:
我已采取以下步骤:
按照文档中的说明设置身份验证服务器
将以下内容添加到auth服务器中的settings.py
按照文档中的说明设置资源服务器
将此添加到资源服务器中的settings.py:
我根据以下说明创建了资源\u服务器\u身份验证\u令牌:
总而言之,我为资源服务器创建了一个超级用户,然后使用管理站点向资源服务器添加了一个应用程序,为客户端类型选择机密,为
我想知道是否有一种干净的方法可以使用django rest框架从其URL检索对象。当然应该有,因为使用HyperlinkedRelatedField时似乎发生了什么
例如,我将这个URL/api/comment/26作为一个字符串。在我看来,如何获得具有pk=26的注释实例
当然,我可以重做工作和工作的字符串,但它必须是一个更好的方式
非常感谢
编辑:
最后我就是这样解决的:
resolve('/api/comment/26/')。func.cls.model将返回我的模型注释。
resolve
我的逻辑显然不属于get\u queryset函数,它给了我一个错误,我应该把代码放在哪里
def get_queryset(self, **kwargs):
subcategory_id = kwargs["subcategory_id"]
retailer_id = kwargs["retailer_id"]
try:
subcategory = SubCategory.objects.get(id=subcategory_id)
excep
我有以下设置:
型号.py
class QuoteModel(models.Model):
"""
this model stores initial information for the Quote
"""
quote_number = models.CharField(max_length=20,
unique=True,
我需要基于在url.py中传递的变量,使视图无需身份验证即可访问
我的想法是这样的:
url.py
url(r'^oidc-api/', include('api.urls'), {'logged': True})
class ExampleViewSet(ModelViewSet):
if logged: # How can I get this variable, passed in urls.py?
permission_classes =
请求
GET /operation/data_resample_ranges/?activeElements=%7B%22resample_ranges%22:%7B%22(5)(0)Signal_1%5B%20%5D%22:%22mongodb~test_db~5-0-0-0-0
-0%22,%22(5)(0)Signal_2%5B%20%5D%22:%22mongodb~test_db~5-0-0-0-0-1%22,%22(5)(0)Signal_3%5B%20%5D%22:%22mongo
像列表的嵌套dict一样,我们可以使用序列化程序返回customize,还是需要编写django视图来定制数据的输出
型号.py
class Reporter(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField()
class Article(m
我尝试过团结和价值观。但是,当我尝试使用任何嵌套序列化程序时,它似乎非常有问题。有谁能给我更好的解决办法吗?我应该用什么
table Friend Request
id -from_user - to_user - to_user_name
1 2 3 Mike
2 3 4 John
3 3 15 David
4 10 3
我正在尝试在DRF中创建一个没有任何DB的RESTAPI。我希望用户使用post数据点击API。一旦系统接收到数据,我将执行另一个API调用并显示响应。我的代码是:
序列化程序.py
class getCPHSerializers(serializers.Serializer):
cph_id = serializers.CharField(max_length=128, write_only=True, required=True)
views.py
class GETCPHDeta
我有一个名为BuildViewSet的ViewSet,有一组详细视图和一个列表视图:
class BuildViewSet(viewsets.ModelViewSet):
queryset = Build.objects.all()
def list(self, request):
# Do some filtering on self.queryset based on user preferences
return super(BuildV
我有一个用于/GET/请求的API端点,它接受一些必需的参数,如/resources/?bag\u id=11
bag\u id表示应用程序中的bag对象。
在我的场景中,这是我希望处理此呼叫的方式:
1) 如果url中没有提供bag_id,则会引发错误,说明“bag_id”是必需的参数
2) 如果提供了行李id,则检查是否存在用于此目的的行李对象,如果不存在,则引发错误,说明“未找到行李”
我想知道哪一个地方可能是处理这个问题的正确地点:
我应该重写list()并在那里或其他地方处理这些情况吗
我们想为我们的WebSocket使用django通道,但我们也需要进行身份验证。我们有一个使用django rest framework运行的rest api,在那里我们使用令牌对用户进行身份验证,但django通道中似乎没有内置相同的功能。这个答案对通道1有效
您可以在此github问题中找到所有信息:
我将在这里总结讨论
将此mixin复制到您的项目中:
将装饰程序应用于ws\u connect
应用程序通过对django rest框架中的/auth token视图的早期身份验证请求接收
伙计们:我正试图通过Django REST Framework和“url参数”获取数据库表中某个条目的详细信息。我正在使用以下代码获取“symbol”参数的值。然而,我在命令行上得到了与base\u name相关的运行时错误。以下是我的代码的详细信息:
class ticker_detail_full_view(viewsets.ModelViewSet):
serializer_class = ticker_detail_full
def get_queryset(self)
我有一个django rest api,它实现了视图集,如下所示
class SubjectViewSet(viewsets.ModelViewSet):
pagination_class = ContentRangeHeaderPagination
queryset = Subject.objects.all()
serializer_class = SubjectSerializer
同样,我的前端也是基于react admin的
问题:
从邮递员那里,我可以轻松地
我是DRF新手,我应该创建几个端点来只显示简单的统计数据
我想要的是:
我想使用DRF视图或任何方便的DRF方式创建简单的聚合端点
第一个端点/users/total:
{
"total_users": 5534
}
{
"new_users": 12,
"disabled_users": 2,
"new_premium_users": 6,
}
第二个端点/users/2009/一月:
{
"total_users": 5534
}
{
"
drf_yasg swagger生成器没有将类型数组作为有效的参数类型。
实施情况如下
from drf_yasg import openapi
param1 = openapi.Parameter('param_name',
in_=openapi.IN_QUERY,
description='description of param',
我试图根据url中的kwarg筛选queryset。
我的url类似于:
http://localhost:8000/notification/all/?type="workflow"
我想筛选url中是否存在类型参数
class NotificationList(generics.ListAPIView):
model = Notification
serializer_class = NotificationSerializer
def get_queryset(
我现在使用DRF作为我项目的后端
我有这样的产品型号
class product(models.Model):
product_name = models.CharField(max_length=160)
class category(models.Model):
category_name = models.CharField(max_length=60)
category_icon = models.ImageField(upload_to='categ
假设我有一台服务器abc:8080
以及一个向abc:8080.提出请求的网站web.org
我只想通过web.org访问abc:8080。。
未经允许的来源“web.org”,用户不得导航到abc:8080。
这可能吗
django cors headers的具体答案将非常棒 据我所知,您的abc:8080充当提供API的后端服务器,而web.org则是使用这些API的前端服务器
我假设您在abc:8080上安装了django cors头文件
将web.org添加到'abc:8080'项目中的
我使用python social auth和django rest框架允许用户在我的应用程序中注册他们的社交帐户
我的情况与这篇文章相似
我使用django rest框架的令牌身份验证来验证用户
在使用我的自定义用户模型时,当标题中有可用的authtoken(用户已登录)时,创建的社交用户帐户将链接到其令牌按预期附加到请求的用户,但如果没有可用的令牌,则无法创建新帐户
但是当使用默认的django用户模型时,一切都按预期进行。我怀疑我没有正确配置自定义用户模型
下面是我的设置文件,请你看看,看
我有一个api,它通过带有额外订单字段的多个模型检索与项目相关的所有项。我现在正尝试序列化带有订单值的项目
一种解决方案是通过模型序列化,但结果如下:
{
"order": 1,
"item": {
"id": 3031,
"name": "Miami"
}
},
我希望序列化该项,并获得如下输出:
{
"order": 1,
"id": 3031,
"name": "Miami"
}
我无法将订单作为属性添加到
我们正在用WagtailAPI构建一个无头CMS。
我们的主模型变得非常长,以使表示更清晰,前端更容易访问,
我正在尝试将页面模型的不同字段分组到各个部分中
但我无法序列化嵌套的ImageField
这是我的页面模型:
class LandingPage(Page):
…
introduction_headline= models.CharField()
introduction_text = RichTextField()
introduction_icon = models.ForeignK
我想将搜索过滤器与没有git标准查找表达式的FIlterSet过滤器结合起来
我尝试为我的端点添加此配置:
filter_backends = (filters.SearchFilter, DjangoFilterBackend)
search_fields = ('username', 'full_name')
filterset_fields = 'username',
它工作正常,但我需要在filterset\u字段中查找username
这是我的终点
class Use
我如何才能访问像example.com//teams/这样的网站
当然,我的团队模型通过foreignkey指向公司,但当我将其添加到我的url.py中时,它会出错
path('<slug>/teams/<slug>', views.TeamDetail.as_view(), name="TeamDetail"),
所以我找到了一个解决方案,谢谢这个thx xyres
我将我的视图编辑为:
class TeamDetail(RetrieveAPIView):
a
我正在使用DRF制作一个POST api。在那个api中,我只需要几个字段名称、大小、客户名称、客户地址,但不需要这个字段status、ordered\u time,因为我想在运行时将这些字段保存为status='open'和ordered\u time=DateTimeField.now
views.py
models.py
序列化程序.py
但当我尝试创建订单时,它还需要状态和订购时间。但它应该在自动创建订单时保存。
建议一个好的方法
from rest_framework import v
我正在使用Django Rest聚合一些数据,以便前端呈现(通过Chart.js)
假设我想要一张x轴上有月份(1-12月)和y轴上有总成本值的图表。如果找不到该月的值,我如何确保始终吐出所有12个月,并为y轴提供“0”
例如,来自Django rest的序列化数据缺少11月和12月的值,但我仍然需要这些标签才能正确呈现图表JS
[
{
"month": "2020-01-01",
"total_cost&
1 2 3 4 5 6 ...
下一页 最后一页 共 14 页