Django的。其余框架。嵌套关系为空结果

时间:2019-08-29 06:45:07

标签: django django-rest-framework

需要一些建议。我设置了序列化。没有错误。但是在输出中我得到了空标签。我伤了头,我在做什么错了?

models.py:

class kv(models.Model):
    title = models.CharField(max_length=200)
    price = models.IntegerField()
    address = models.CharField(max_length=200)
    property_type = models.CharField(choices=realty_type_choices_admin, default='kv',
                                     max_length=200, blank=True)

    country = models.CharField(default='Россия', max_length=200)
    region = models.CharField(max_length=200)
    state = models.CharField(choices=state_choices_admin, default='DGO', max_length=200, blank=True, null=True)
    locality_name = models.CharField(max_length=200, blank=True, null=True)
    address_xml = models.CharField(max_length=200, blank=True, null=True)
    city = models.CharField(max_length=100, blank=True, null=True)

serializers.py

from rest_framework import serializers
from listings.models import kv

class kvSerializerLocation(serializers.ModelSerializer):
    class Meta:
        model = kv
        fields = ['country', 'region', 'state', 'locality_name', 'address_xml', 'city']


class kvSerializer(serializers.ModelSerializer):
    category = serializers.CharField(source='get_property_type_display')
    url = serializers.CharField(source='get_absolute_url', read_only=True)
    country = kvSerializerLocation()

    class Meta:
        model = kv
        fields = ['title', 'price', 'address', 'category', 'url', 'country']

views.py

from listings.models import *
from rest_framework import viewsets
from rest_framework_xml.renderers import XMLRenderer
from .serializers import kvSerializer

class KvXMLRenderer(XMLRenderer):
    root_tag_name = 'feed'
    item_tag_name = 'offer'

    def _to_xml(self, xml, data):
        super()._to_xml(xml, data)

class kvViewSet(viewsets.ModelViewSet):
    queryset = Kvartiry.objects.all().filter(is_published=True)
    serializer_class = kvSerializer
    renderer_classes = [KvXMLRenderer]

结果:

<country>
    <state/>
    <locality_name/>
    <address_xml/>
    <city/>
</country>

这很奇怪。标签为空,根本没有region标签

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您的实现不适用于国家/地区,因为它是一个字段,并且无法将国家/地区值映射到Add-Computer可以使用的您的$MaxAttempts = 0 do { Add-Computer -DomainName "domainname.local" -Credential "admin" $success = $? if (-not $success) { $MaxAttempts++ } } until ($success -or $MaxAttempts -ge 5) { 实例。而是使用SerializerMethodField

kv