Python Django获取整个对象的外键,而不仅仅是id(主键)

Python Django获取整个对象的外键,而不仅仅是id(主键),python,django,python-2.7,django-models,django-queryset,Python,Django,Python 2.7,Django Models,Django Queryset,我的Django项目中有以下模型 class State(models.Model): state_name = models.CharField(max_length=30, unique=True) state_code = models.CharField(max_length=30, unique=True) class District(models.Model): district_name = models.CharField(max_length=50)

我的Django项目中有以下模型

class State(models.Model):
    state_name = models.CharField(max_length=30, unique=True)
    state_code = models.CharField(max_length=30, unique=True)

class District(models.Model):
    district_name = models.CharField(max_length=50)
    district_code = models.CharField(max_length=30)
    state_obj = models.ForeignKey(State)
我想填充一个地区列表以及州行政区,并将其发送到前端。 我正在使用serialize并尝试

serializers.serialize("json", District.objects.all())
并以以下格式获取结果

{"fields": {"state_obj": 23, "district_name": "NANDURBAR", "district_code": "NANDURBAR"}, "model": "adaxial_core.district", "pk": 665}
在django中,是否可以获取整个对象的状态而不是id

我期望的输出是这样的

{"fields": {"state_obj": {id:1,state_name:'X',state_code:'Y'}, "district_name": "NANDURBAR", "district_code": "NANDURBAR"}, "model": "adaxial_core.district", "pk": 665}
希望在不对结果集应用额外循环的情况下尝试执行此操作


有没有办法做到这一点呢?我认为这是不可能的,只是在最近的一次会议上才得到解决(并被拒绝)。如果依赖项是用例的一个选项,那么使用来自Django Rest框架(或我从未使用过的tastypie)的序列化程序可能就可以了。否则,我认为您必须在代码中执行此操作

以下是一段关于该问题的引文:

除非序列化API有更基本的寻址, 旨在使其对Web API普遍可用和可扩展 在序列化程序运行时,推送序列化程序的作用域没有任何价值 现在站起来。现在,它们的用例应该是fixture 加载和保存,而不是其他。还有更好的工具 对于一般可扩展的序列化方案(REST框架, 品味等)

Django有助于避免额外的SQL命中,所以至少这会有一点性能改进