Django:查询多对一模型实例字段

Django:查询多对一模型实例字段,django,model,key,Django,Model,Key,我一直在学习Django教程,试图将一个模型实例的字段(通过外键)关联到另一个模型实例。我的意思是: 模型文件: from django.db import models class Usercar(models.Model): make = models.CharField(max_length=200) model = models.CharField(max_length=200) year = models.DateTimeField('year of car'

我一直在学习Django教程,试图将一个模型实例的字段(通过外键)关联到另一个模型实例。我的意思是:

模型文件:

from django.db import models

class Usercar(models.Model):
    make = models.CharField(max_length=200)
    model = models.CharField(max_length=200)
    year = models.DateTimeField('year of car')
    def __unicode__(self):
        return self.make

class Suggestcar(models.Model):
    usercar = models.ForeignKey(Usercar)
    make = models.CharField(max_length=200)
    model = models.CharField(max_length=200)
    year = models.DateTimeField('year of car')
    def __unicode__(self):
        return self.make
在shell中,这是我在尝试获取与usercar相关的suggestcar的品牌时得到的:

>>from django.utils import timezone
>>mycar1 = Usercar(make="Ford",model="Escort",year=timezone.now())
>>mycar1.save()
>>mycar1.suggestcar_set.create(make="Ford", model="Taurus", year=timezone.now())
>>mycar1.suggestcar_set.filter(id=1).make
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/django/core/management/commands/shell.pyc in <module>()
----> 1 mycar1.suggestcar_set.filter(id=1).make

AttributeError: 'QuerySet' object has no attribute 'make'
来自django.utils导入时区的
>
>>mycar1=Usercar(make=“Ford”,model=“Escort”,year=timezone.now())
>>mycar1.save()
>>mycar1.suggestcar\u set.create(make=“Ford”,model=“Taurus”,year=timezone.now())
>>mycar1.suggestcar\u set.filter(id=1.make)
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/shell.pyc in()
---->1 mycar1.suggestcar\u set.filter(id=1)。生成
AttributeError:“QuerySet”对象没有属性“make”
如何获取此mycar1.suggestcar\u set.filter(id=1)的品牌?谢谢

返回查询集,如果要访问其中的对象,需要迭代查询集或从中获取第一个结果

mycar1.suggestcar_set.filter(id=1)[0].make
如果只想返回一个对象,那么应该使用


这仍然是返回一个DoesNotExist错误给我…我会让你知道,如果我搞砸了什么地方,它的工作。谢谢是什么导致了这个错误
DoesNotExist
AttributeError
非常不同。如果您获得的是
DoesNotExist
,则所提供的查询没有任何结果。您可以尝试
mycar1.suggestcar\u set.values()
查看与
mycar1
相关的所有
suggestcar
对象
mycar1.suggestcar_set.get(id=1).make