循环从Django manymany字段中选择的值



如何从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

最新更新