django rest 框架中的 django_countries 序列化程序

Dun*_*ill 5 django django-rest-framework

我正在尝试将 django-countries 序列化,但是我的 json 没有显示所有可用的国家/地区。我在这里阅读了 django rest framework 中的 django_countries,了解可能的解决方案是什么,但我没有得到我应该得到的结果,或者我认为我应该得到。

这就是我的 Serializer 的样子。

from django_countries.serializer_fields import CountryField

class LocationsSerializer(serializers.ModelSerializer):

country = CountryField()

class Meta:
    model = Location
    fields = ('location_name', 'address', 'city', 'province', 'postal_code', 'country')
Run Code Online (Sandbox Code Playgroud)

这就是我的模型的样子。

from django_countries.fields import CountryField

class Location(models.Model):

location_name = models.CharField(max_length=100, default="None")
address = models.CharField(max_length=100)
city = models.CharField(max_length=100)
province = models.CharField(max_length=100)
postal_code = models.CharField(max_length=100)
country = CountryField()

def __str__(self):
    return self.location_name
Run Code Online (Sandbox Code Playgroud)

当我查看 json 时,只显示保存的值,而不是在我的 angularjs 应用程序中迭代的所有可用选项。

任何方向将不胜感激。

mic*_*ela 10

使用库附带的 CountryFieldMixin。这里有一个记录的例子

from django_countries.serializers import CountryFieldMixin

class CountrySerializer(CountryFieldMixin, serializers.ModelSerializer):

    class Meta:
        model = models.Person
        fields = ('name', 'email', 'country')
Run Code Online (Sandbox Code Playgroud)

https://github.com/SmileyChris/django-countries