这是我的模特
驱动程序模型
class Driver(models.Model):
named = models.CharField(max_length=150)
ident = models.CharField(max_length=100, null=True, blank=True)
def __unicode__(self):
return self.named
制造模型
class Carlcid(models.Model):
namec = models.CharField(max_length=100)
lc_id = models.CharField(max_length=100, null=True, blank=True)
def __unicode__(self):
return unicode(self.namec)
汽车模型
class Car(models.Model):
f_idcar = models.ForeignKey(Carlcid, related_name='carlcd')
id_driver = models.ForeignKey(Driver)
def __unicode__(self):
return unicode(self.f_idcar)
这是我的观点
def get_name_driver(request):
name = request.GET.get('name')
query = Car.objects.filter(f_idcar__namec=name)
results=[]
for q in query:
m_json={}
m_json['nama']= q.named
results.append(m_json)
return HttpResponse(results,"application/json")
我得到{'nama': <Driver: Michael>}
但是我不会得到这样的结果{'nama': "Michael"}
,如何得到这样的结果,谢谢你的帮助。
答案 0 :(得分:0)
您必须使用以下行获取驱动程序名称:
m_json['nama']= q.id_driver.named
您的新观点:
def get_name_driver(request):
name = request.GET.get('name')
query = Car.objects.filter(f_idcar__namec=name)
results=[]
for q in query:
m_json={}
m_json['nama']= q.id_driver.named
results.append(m_json)
return HttpResponse(results,"application/json")
除了我的回答,我想给你一个建议:
您应该像模型一样命名您的外键。是的,在数据库中它将存储驱动程序ID,但是当您使用Django ORM时,您不会获得驱动程序的ID,而是驱动程序对象。
所以我建议您通过驱动程序重命名 id_driver ,这样您就可以使用
m_json['nama']= q.driver.named
但不是必需的,只是建议;)