Django rest框架发送带单引号的字符串而不是带双引号的JSON

克里斯·琼斯

我正在通过POST发送JSON到视图。我得到的响应仅是JSON的一部分,其余部分已从双引号更改为单引号。

我的问题是如何确保将所有这些作为JSON发送回去?作为我的问题的额外奖励,我不知道会将哪些字段发送给承租人。

POST看起来像:

{"leasee":
{"profession":{"permanentMakeup":true,"esthetician":true,"hairStylist":true},
"compare":{"uniqueVsChic":"56"},
"name":"dfasdfasdf",
"contact":{"text":true,"facebook":true}}}

但是GET给了我:

{"leasee":
"{'compare': {'uniqueVsChic': '56'}, 
'profession': {'hairStylist':True, 
'esthetician': True, 
'permanentMakeup': True}, 
'name':'dfasdfasdf', 
'contact':{'facebook': True,'text': True}}",
"created_at":"2015-05-22T23:27:13.598686Z",
"updated_at":"2015-05-22T23:27:13.609893Z"}

我的views.py:

from rest_framework import viewsets
from sitepages.models import SalonSubmission, StylistSubmission
from sitepages.serializers import SalonSerializer, StylistSerializer
from django.db.models.signals import post_save
from django.core.mail import send_mail
from django.dispatch import receiver


class SalonViewSet(viewsets.ModelViewSet):
    queryset = SalonSubmission.objects.order_by('-created_at')
    serializer_class = SalonSerializer

    def perform_create(self, serializer):
        instance = serializer.save()
        post_save.send(sender=self.__class__, name=instance.business_name, phone=instance.phone)
        return super(SalonViewSet, self).perform_create(serializer)


class StylistViewSet(viewsets.ModelViewSet):
    queryset = StylistSubmission.objects.order_by('-created_at')
    serializer_class = StylistSerializer

    def perform_create(self, serializer):
        instance = serializer.save()
        post_save.send(sender=self.__class__, stylist=instance.leasee)
        return super(StylistViewSet, self).perform_create(serializer)


@receiver(post_save, sender=SalonViewSet)
def send_email(sender, **kwargs):
    send_mail(kwargs['name'], kwargs['phone'], '[email protected]',
              ['[email protected]'], fail_silently=False)


@receiver(post_save, sender=StylistViewSet)
def send_email(sender, **kwargs):
    send_mail('aName', kwargs['stylist'], '[email protected]',
              ['[email protected]'], fail_silently=False)

我的serializers.py:

from rest_framework import serializers
from sitepages.models import SalonSubmission, StylistSubmission


class SalonSerializer(serializers.ModelSerializer):
    class Meta:
        model = SalonSubmission

        fields = ('business_name', 'phone', 'created_at', 'updated_at')
        read_only_fields = ('created_at', 'updated_at')


class StylistSerializer(serializers.ModelSerializer):
    class Meta:
        model = StylistSubmission
        fields = (
            'leasee',
            'created_at',
            'updated_at'
        )
        read_only_fields = ('created_at', 'updated_at')

我的models.py:

从django.db导入模型

class SalonSubmission(models.Model):
    business_name = models.CharField(max_length=250)
    phone = models.CharField(max_length=250)

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)


class StylistSubmission(models.Model):
    leasee = models.CharField(max_length=2000)
    file = models.FileField(upload_to="/media/")

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
制造者

看来这leasee = models.CharField(max_length=2000)是一个charfield。因此,Django只是返回存储在此字段中的字符串。同样,它也不存储有效的JSON字符串,因为JSON仅允许双引号。

{'compare': {'uniqueVsChic': '56'}, 
'profession': {'hairStylist':True, 
'esthetician': True, 
'permanentMakeup': True}, 
'name':'dfasdfasdf', 
'contact':{'facebook': True,'text': True}}

看起来像弦乐的dict因此,您可以尝试在序列化程序leasee中将其解析dict

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django rest框架发送带单引号的字符串而不是带双引号的JSON

来自分类Dev

将列表表示为带双引号的字符串,而不是JSON的单引号

来自分类Dev

带双引号的字符串比较

来自分类Dev

psql在字符串中插入带双引号的json

来自分类Dev

Json字符串格式带双引号

来自分类Dev

在SQL Server中搜索带双引号的字符串

来自分类Dev

带双引号的字符串初始化

来自分类Dev

带双引号的字符串初始化

来自分类Dev

绑定到带转义双引号的字符串

来自分类Dev

PHP解析逗号分隔的字符串,带双引号

来自分类Dev

用字符串内的双引号替换单引号

来自分类Dev

将字符串双引号转换为单引号

来自分类Dev

获取单引号或双引号之间的字符串

来自分类Dev

替换字符串中的单引号和双引号

来自分类Dev

字符串中的单引号和双引号的grep

来自分类Dev

双引号和单引号内的Grep字符串

来自分类Dev

保存包含单引号和双引号的字符串?

来自分类Dev

如何从字符串中删除单引号或双引号?

来自分类Dev

带/不带引号和单/双引号的 bash 字符串

来自分类Dev

在包含单引号和双引号的字符串中转义单引号

来自分类Dev

将逗号分隔的字符串转换为带单引号的字符串列表

来自分类Dev

jQuery数据存储带单引号或双引号的对象

来自分类Dev

Python JSON 将单引号更改为双引号,单独保留字符串中的引号

来自分类Dev

带后缀的Django rest框架url

来自分类Dev

Bash:在带空格的字符串中添加额外的单引号

来自分类Dev

php:字符串被双引号引起来,而不是单引号引起来。怎么修?

来自分类Dev

php&javascript警报,其中包含带双引号的字符串

来自分类Dev

R-将行提取为带双引号的字符串

来自分类Dev

转换为R中带双引号的数字字符串

Related 相关文章

  1. 1

    Django rest框架发送带单引号的字符串而不是带双引号的JSON

  2. 2

    将列表表示为带双引号的字符串,而不是JSON的单引号

  3. 3

    带双引号的字符串比较

  4. 4

    psql在字符串中插入带双引号的json

  5. 5

    Json字符串格式带双引号

  6. 6

    在SQL Server中搜索带双引号的字符串

  7. 7

    带双引号的字符串初始化

  8. 8

    带双引号的字符串初始化

  9. 9

    绑定到带转义双引号的字符串

  10. 10

    PHP解析逗号分隔的字符串,带双引号

  11. 11

    用字符串内的双引号替换单引号

  12. 12

    将字符串双引号转换为单引号

  13. 13

    获取单引号或双引号之间的字符串

  14. 14

    替换字符串中的单引号和双引号

  15. 15

    字符串中的单引号和双引号的grep

  16. 16

    双引号和单引号内的Grep字符串

  17. 17

    保存包含单引号和双引号的字符串?

  18. 18

    如何从字符串中删除单引号或双引号?

  19. 19

    带/不带引号和单/双引号的 bash 字符串

  20. 20

    在包含单引号和双引号的字符串中转义单引号

  21. 21

    将逗号分隔的字符串转换为带单引号的字符串列表

  22. 22

    jQuery数据存储带单引号或双引号的对象

  23. 23

    Python JSON 将单引号更改为双引号,单独保留字符串中的引号

  24. 24

    带后缀的Django rest框架url

  25. 25

    Bash:在带空格的字符串中添加额外的单引号

  26. 26

    php:字符串被双引号引起来,而不是单引号引起来。怎么修?

  27. 27

    php&javascript警报,其中包含带双引号的字符串

  28. 28

    R-将行提取为带双引号的字符串

  29. 29

    转换为R中带双引号的数字字符串

热门标签

归档