Django-countries和TastyPie:获取国家名称

时间:2016-03-18 09:04:36

标签: python django rest tastypie django-countries

我有一个这样的模型:

from django.db import models
from django_countries.fields import CountryField

class Location(models.Model):
    company = models.CharField(max_length=64)
    country = CountryField()

    def __unicode__(self):
        return self.company

现在我使用TastyPie作为API。我得到了一个非常简单的模型(尽管我以前用过滤器和字段编辑过但没有成功):

class LocationResource(ModelResource):
    class Meta:
        queryset = Location.objects.all()
        resource_name = 'location'

它返回的内容:

{"company": "testcompany", "country":"DE" "resource_uri": "/api/location/1/"}

我需要的是国家名称,甚至更好的国家/地区的任何内容。

3 个答案:

答案 0 :(得分:1)

您可以为country

添加LocationResource的脱水方法
def dehydrate_country(self, bundle):
    return bundle.obj.country.name 

<强> OR

如果您使用 DRF 实例化Country field

 from django_countries.serializer_fields import CountryField

 country = CountryField(country_dict=True)

serializer

答案 1 :(得分:1)

您可以从django_countries数据字典中获取名称

from django_countries.data import COUNTRIES

country_name = COUNTRIES[country_code]

答案 2 :(得分:0)

在使用DRF的情况下,对序列化程序进行一些调整可能会起作用

{{1}}