gpt4 book ai didi

Django 从 [ErrorDetail(string ='Test Message' , code ='invalid' )] 中提取字符串

转载 作者:行者123 更新时间:2023-12-03 16:51:56 31 4
gpt4 key购买 nike

我想在我的模板中只显示字符串变量中的消息,但我不知道如何。我正在使用 Django Rest 框架。我的代码:

表单.html

<p>{{ serializer.amount.errors }}</p>

序列化程序.py
from rest_framework import serializers
from .models import Data, Material


class DataSerializer(serializers.ModelSerializer):

class Meta:
model = Data
fields = ('order_date', 'material', 'amount', 'delivery_number', 'employee')
read_only_fields = ('id', 'insert_time')
extra_kwargs = {"amount": {"error_messages": {"invalid": "Test Message"}}}

View .py
class Form(APIView):

renderer_classes = [TemplateHTMLRenderer]
template_name = 'zulieferung/form.html'

def get(self, request):
materials = Material.objects.distinct('material_unit_id')
return Response({'all_materials': materials})

def post(self, request):
materials = Material.objects.all()
serializer = DataSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response({'all_materials': materials}, status=status.HTTP_201_CREATED)
return Response({'serializer': serializer}, status=status.HTTP_400_BAD_REQUEST)

而不是 测试留言在我的模板中,我有 [ErrorDetail(string='Test Message', code='invalid')]

enter image description here

最佳答案

你应该在你的模板中尝试

{% for error in serializer.amount.errors %}
{{ error }}
{% endofor %}
但我不明白你为什么将 django rest_framework 与 HTML 模板一起使用。 REST 框架用于 REST API,这绝对不是这种情况。为此,请使用 django.forms .使用直接渲染到 HTML 模板的 REST 序列化程序确实没有意义。
链接:
Working with forms
When to use REST framework

关于Django 从 [ErrorDetail(string ='Test Message' , code ='invalid' )] 中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52080134/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com