django_countries序列化器在django rest框架中

时间:2018-02-01 09:35:49

标签: django django-rest-framework

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

这就是我的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')

这就是我的模型。

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

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

任何方向都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

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

from django_countries.serializers import CountryFieldMixin

class CountrySerializer(CountryFieldMixin, serializers.ModelSerializer):

    class Meta:
        model = models.Person
        fields = ('name', 'email', 'country')

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