Django:返回外键的自定义字段值以替换筛选器()中的id号

Django:返回外键的自定义字段值以替换筛选器()中的id号,django,filter,foreign-keys,Django,Filter,Foreign Keys,我有以下型号.py class site(models.Model): site_name = models.CharField(max_length=10) site_description = models.CharField(max_length=30, blank=True, null=True) def __unicode__(self): return self.site_name class asset(models.Model):

我有以下型号.py

class site(models.Model):
    site_name = models.CharField(max_length=10)
    site_description = models.CharField(max_length=30, blank=True, null=True)
    def __unicode__(self):
        return self.site_name

class asset(models.Model):
    STAT_CHOICES = (('Available', 'Available'), ('Deployed', 'Deployed'), ('Down', 'Down'))
    asset_id = models.CharField(max_length=30, primary_key=True)
    owner = models.CharField(max_length=30, blank=True, null=True)
    status = models.CharField(choices=STAT_CHOICES, max_length=30, blank=True, null=True)
    site = models.ForeignKey(it_asset_site)
    notes = models.CharField(max_length=300, blank=True, null=True)

    def __unicode__(self):
        return self.asset_id
正如我们所知,表“site”默认情况下会将site_id创建为PK。 在我将数据导入表asset之后,在django的admin中,站点是displaysite\u name。这种效果来自def unicodeself:。 所以我想得到同样的效果

f = asset.objects.filter(site__site_name__contains='NNG1')
但在f中,site字段显示numbersite_id而不是NNG1site_名称,示例:

b = f.filter(site__site_name__contains='NNG1')
In [44]: b.values()[0]
Out[44]: 
{'asset_id': u'3914100271',
 'owner': u'',
 'status': None,
 'site_id': 8L,*****<-now*****
 'notes': u'',
}
有一种方法可以使筛选结果变成:

{'asset_id': u'3914100271',
 'owner': u'',
 'status': None,
 'site_name': u'NNG1',*****<-hope*****
 'notes': u'',
}
像django管理页面秀?
谢谢

您可以将字段指定为值中的参数:


很酷,很管用!!我迷上了各种各样的文档,忘了尝试价值观:非常感谢!
b.values('asset_id', 'owner', 'status', 'site__name', 'notes')[0]