models.py
的代码from django.db import models
class a(models.Model):
name=models.CharField(max_length=20)
class b(models.Model):
roll=models.IntegerField()
a=models.ManyToManyField(a)
实际上我正在学习Django,因为我已经在 b 模型和 a 模型中定义了多对多关系。我正在尝试对这些模型进行一些实验,以便我可以更好地理解多对多关系。
在Django shell中对我的模型进行一些实验。
In [1]: from payment.models import a,b
In [2]: x=a(name="test")
In [3]: x.save()
In [4]: y=b(roll=4)
In [5]: y.save()
In [6]: y.a.add(x)
In [13]: x=b.objects.filter(a__id=4)
In [14]: x[0].a
Out[14]: <django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager at 0x6a833a60f0>
In [15]: x[0].a.name
In [16]:
当我在shell中运行x [0] .a.name时,它不返回任何原因吗?我们不能访问这样的name属性。如何知道 a 模型的哪些对象是相关的带有 b 模型的 y对象。