Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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
Python Django Rest-基于应用逻辑的自定义JSON_Python_Django_Django Models_Django Rest Framework - Fatal编程技术网

Python Django Rest-基于应用逻辑的自定义JSON

Python Django Rest-基于应用逻辑的自定义JSON,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,我试图在Django rest框架中创建一个自定义JSON。(使用的方法是serializers.ModelSerializer)。我不知道采取什么方法来实现这一目标 逻辑:检查模型中的一些数据,并根据这些数据对另一个模型进行进一步计算。在获得所需输出之前,此操作将继续进行。如何设置序列化程序和视图集 class DataPointSerializer(serializers.ModelSerializer): class Meta: model = DataPoint

我试图在Django rest框架中创建一个自定义JSON。(使用的方法是serializers.ModelSerializer)。我不知道采取什么方法来实现这一目标

逻辑:检查模型中的一些数据,并根据这些数据对另一个模型进行进一步计算。在获得所需输出之前,此操作将继续进行。如何设置序列化程序和视图集

class DataPointSerializer(serializers.ModelSerializer): 
    class Meta:
        model = DataPoint
        fileds = (what goes here ?)

    def to_representation(self,instance):
        model_one = model_one.objects.all()
        calculation using model_one
        model_two.objects.filter(by calculated data)
        construct JSON
        return  JSON
我想知道完成这项任务的方法

TK-01

TK-02


我正在尝试创建类似的内容,但在序列化程序中需要它,而不是APIView,序列化程序如下所示:

class DataPointSerializer(serializers.ModelSerializer):
    representation = serializers.SerializerMethodField()

    class Meta:
        model = DataPoint
        fileds = ('representation',)

    def get_representation(self,instance):
        data = []
        model_one = model_one.objects.all()
        calculation using model_one
        model_two.objects.filter(by calculated data)
        construct JSON
        data.append(construct JSON)
        return data

哦,天哪,我知道自定义函数,但我完全忘记了。我尝试在get_representation上返回直接Model.objects.all()。它说不能JSON序列化。莫里克·帕特尔:我试过这个。班次模型具有id和班次名称。只有三个条目。但是这个get_表示返回了连接到Meta类的序列化程序的模型中的大量记录。每个记录在输出中有3个来自班次模型的条目乘以所附模型的记录。在问题中查找TK01以获取代码。当我返回移位数据时,它应该只在输出中出现一次。是否必须使用
ModelSerializer
?考虑到JSON输出将是定制的,并且与
DataPoint
的字段不密切相关,直接扩展
BaseSerializer
是否更好?请在我的问题中检查TK-02
class DataPointSerializer(serializers.ModelSerializer):
    representation = serializers.SerializerMethodField()

    class Meta:
        model = DataPoint
        fileds = ('representation',)

    def get_representation(self,instance):
        data = []
        model_one = model_one.objects.all()
        calculation using model_one
        model_two.objects.filter(by calculated data)
        construct JSON
        data.append(construct JSON)
        return data