Django:与多对多关系有关的问题

时间:2020-04-21 10:36:41

标签: python django model many-to-many

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对象

0 个答案:

没有答案