具有 2 个或更多字段的 Django 序列化程序方法字段

标签 django django-rest-framework

我需要从现有表扩展我的序列化程序。

class SER_Assets(serializers.ModelSerializer):
    asset_id = serializers.SerializerMethodField()
    asset_name = serializers.SerializerMethodField()

    def get_asset_id(self, obj):
       t1 = Tbl.objects.get(tbl_id=obj.id)
       return t1.asset_id

    def get_asset_name(self, obj):
       ..

我知道这个方法.. 两个函数都将调用同一个表我想减少函数。所以我需要调用单个函数来返回多个字段。

这可能吗?

最佳答案

由于您使用的是 serializers.ModelSerializer ,如果该字段是模型字段,那么您可以只提及模型字段的名称。

注意:您可以使用serializers.SerializedMethodField如果您需要对字段进行一些操作。

class MyModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.MyModel
        fields = ["asset_id", "asset_name", "field_3"]
        # You can also use __all__ if you want to include all the fields
        # fields = "__all__"

ModelSerializer 的行为与 Django 的 ModelForm 非常相似

关于具有 2 个或更多字段的 Django 序列化程序方法字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47198348/

相关文章:

django - 如何将自定义控件添加到 django 管理站点?

python - 如何在 Django 测试期间使用 managed = False 创建表

python - 点击提交时UpdateView和DeleteView导致错误405

django - 在 Django 中有几个名字和一个主要名字的模型人?

python - Django rest swagger 无法读取 json api 路径

django - 重定向到外部网站时,url 会附加到请求的 url 末尾

android - 如何制作REST API来查询干草堆elasticsearch?

javascript - 动态传递值(例如 : innerHTML) to another element as a value

django - 最大图像上传大小验证 Django REST API

python - JSONField 嵌套表示的序列化器