序列化器中的访问模型字段

时间:2018-11-06 08:09:20

标签: python django django-rest-framework

密钥和数据是字典,如何访问序列化程序中特定密钥django admin 的数据

 class Setting(models.Model):
      key = models.CharField(max_length=255, primary_key=True)
      data = JSONField(null=True, blank=True)

2 个答案:

答案 0 :(得分:1)

在序列化器中,类似

from rest_framework import serializers
from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES


class SettingsSerializer(serializers.ModelSerializer):
    sample_filed = serializers.SerializerMethodField()

    class Meta:
        model = Settings
        fields = ('key', 'data', 'sample_filed')

     def get_sample_field(self):
        """ a sample field function to demonstrate srialzer method"""
        """ you can access all keys here as self.key "
         return self.key + self.data

注意:-通过使用模型序列化器,您只需指定模型。然后restframework将处理所有通用的东西。 如果要在响应中添加额外字段,则可以使用序列化器methodfield()。在那里,您可以使用上述键

(或)您可以使用django -orm

您可以在序列化程序之外使用Django orm查询。

获取特定行 Settings.objects.get(key = 'key-value')(仅当key唯一时,如果没有值,这将引发异常)

(或)

Settings.objects.filter(key = 'key-value')(推荐。将为您提供所有结果。)

Settings.objects.all()将为您提供所有记录

Settings.objects.filter(key = 'sdaf', data = 'sds')包含键和数据的特定记录。

答案 1 :(得分:0)

使用此代码

id