如何从Many to Many Django模型字段获取值
我试过了,
Member.objects.get(id=2).requirement.requirement
获取输出。我在排除字符串输出
<django.db.models.fields.related_descriptors.create_forward_many_to_many_manager.<locals>.ManyRelatedManager object at 0x7f651bd18fd0>
也,我试过
Member.objects.get(id=2).requirement.requirement.category
模型class Member(models.Model):
name = models.CharField(max_length=30, verbose_name='Name')
age = models.IntegerField(verbose_name='Age')
phone = models.PositiveIntegerField()
class Category(models.Model):
category = models.CharField(max_length=30)
def __str__(self):
return self.category
class Requirement(models.Model):
member = models.OneToOneField(Member, on_delete=models.CASCADE,)
requirement = models.ManyToManyField(Category, blank=True,)
Member.objects.get(id=2).requirement.requirement
是类别对象的集合/集合,因此您可以将其视为QuerySet
,因此您可以在其上使用QuerySet API方法,如.filter()
,获取.first()
或获取.all()
记录。因此,正如预期的那样,manymany字段将有多个结果,您可以在列表中迭代它们,像这样:
for category in Member.objects.get(id=2).requirement.requirement.all():
print(category.category) #or whatever you want to do with it