我正在使用django-rest框架创建一个返回PDF的端点。但是,当呈现PDF时出现错误时,我希望返回一个JSON响应。但是DRF将异常的数据传递给我的PDFRenderer类。只有当出现错误时,我如何才能使用JSONRenderer?
class PDFRenderer(BaseRenderer):
""" DRF renderer for PDF binary content. """
media_type = 'application/pdf'
format = 'pdf'
我有一个来自DRF的ValidationError的自定义错误类。
我可以引发它,但是我不能捕获这个错误子类,只有ValidationError。
from rest_framework import serializers, status
class CustomValidationError(serializers.ValidationError):
status_code = status.HTTP_400_BAD_REQUEST
default_detail = "Something did not go well"
default_code
我只想在DRF中将一条异常消息暴露为一个糟糕的响应。
异常可以来自请求中的任何位置。因此,例如,某些嵌套函数可以具有:
raise Exception('Something went wrong at this particular point')
然后在我的视图处理程序中,我只需捕获异常并引发它:
except Exception as e:
raise e
这会在我的应用程序中引发异常,但是无法解析响应以获得我的自定义消息。
我可以试试这个:
return Response(e, status=status.HTTP_400_BAD_REQUEST)
所以我看到了这个不错的,我也看到了,但是我不知道如何在3D点集上执行3D范围和邻居搜索。一般说来,我想查询一些点容器中的一个点数组,这些点与给定的点( R )之间的距离为P。(备注:我为什么不想手动进行这种搜索-这种搜索可以优化CPU/GPU/SSE,我希望使用经过测试的、可靠的、高效的库来支持我自己的搜索)
我希望在将响应发送回客户端的同时发送error_codes,以防出现错误!!
因此,我有一个表单,其中需要参数a和b。如果其中任何一个参数不是POSTed,那么DRF序列化程序就会发回一个响应,告诉它This field is required.我也想把错误代码添加到响应中,以便客户端识别。不同的错误不同的错误代码。
因此,我编写了自己的自定义异常处理程序。它是这样的。
response = exception_handler(exc, context)
if response is not None:
error = {
'error_code': e
我正在搜索scala中调用函数并作为结果获得Option的可能性,如果调用方法或方法返回null时出现异常,则为"None“。否则,该选项应该具有结果的值。
我知道Try可以用于第一部分,但我不知道如何处理第二部分:
val result = Try(myFunction).toOption()
如果该方法现在返回null (因为它不是scala函数而是Java函数),则result是Some(null)而不是None。
刚尝试用DRF和drf-yasg重建一个容器。完全相同的提交可以很好地通过所有测试,但现在由于以下异常而失败:
ImportError: Could not import 'rest_framework.schemas.coreapi.AutoSchema' for API setting 'DEFAULT_SCHEMA_CLASS'. ModuleNotFoundError: No module named 'rest_framework.schemas.coreapi'.
其他什么都没有改变,但似乎包含了一个较新的包,它打破了Swagger生
我认为我的问题是,它应该已经由修复,但它似乎,无论我发送无或空字符串,DRF是不高兴。
我使用的是Django 1.11.6和DRF 3.7.7
class Part(models.Model):
image = models.ImageField(null=True, blank=True)
class PartSerializer(serializers.ModelSerializer):
class Meta:
model = Part
fields = ('id', 'image')
class Par
我有一个模型Foo,我使用它作为我的香草DRF序列化器的模型。
models.py
class Foo(models.Model):
name = models.CharField(max_length=20)
description = models.TextField()
is_public = models.BooleanField(default=False)
serializers.py
class FooSerializer(serializers.ModelSerializer):
class Meta:
model = Foo
v
我已经在我的设置中设置了Debug=False来测试我的客户端的错误处理,但是我从这个api_view中的一个异常中得到了一个html有效负载(<h1>Server Error (500)</h1>):
@api_view(['POST', ])
@permission_classes((permissions.IsAuthenticated,))
@renderer_classes((JSONRenderer,))
@transaction.atomic()
def process_payment(request):
# Do some wo
b = 15
a = bin(b) # I want return as an integer not string
print(a, type(a)) # output is string, actually I want is integer
# output - 0b1111 <class 'str'>
因此,我想让bin()函数以整数形式返回