Python 访问通过django中的manytomanyfield创建的表数据
我有一个模型文件,其中一个用户可以拥有任意数量的农场,管理员可以创建一个费用并将其放在一个或多个农场上。问题是我想访问通过费用模型中的ManyToManyField创建的表。我只想选择与单个用户相关的ManyToManyField行 假设管理员创建了一个id为“3383”的费用,并从MultiSelectWidget中选择了五个农场。在这五个农场中,用户名“Mike”有两个农场。ManyToManyField表将在其表中为创建5行,包括用户“Mike”的2行农场。我想访问这两排,但无法访问这两排 注意:我只带了用户id用于查找 型号.pyPython 访问通过django中的manytomanyfield创建的表数据,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我有一个模型文件,其中一个用户可以拥有任意数量的农场,管理员可以创建一个费用并将其放在一个或多个农场上。问题是我想访问通过费用模型中的ManyToManyField创建的表。我只想选择与单个用户相关的ManyToManyField行 假设管理员创建了一个id为“3383”的费用,并从MultiSelectWidget中选择了五个农场。在这五个农场中,用户名“Mike”有两个农场。ManyToManyField表将在其表中为创建5行,包括用户“Mike”的2行农场。我想访问这两排,但无法访问这两排
class Farm(models.Model):
farmNo = models.CharField(max_length=100)
class FarmOwner(models.Model):
owner = models.ForeignKey(User)
farm = models.ManyToManyField(Farm)
class Charges(models.Model):
chargeId = models.CharField(max_length=100)
farms = models.ManyToManyField(Farm)
请帮忙
谢谢
查看模型字段文档以了解多对多。您可以通过在您的费用模型M2M声明中添加相关的费用,将“费用设置”的属性名称更改为其他(“费用”)。考虑到费用Id是
3383
,并且用户是mike
,您可以使用此选项获得这两个相关行
mikes_farm_list = FarmOwner.Objects.filter(owner="Mike").values_list('farms', flat=True)
Charges.Objects.filter(chargeId=3383, farms__in=mikes_farm_list)
mikes_farm_list = FarmOwner.Objects.filter(owner="Mike").values_list('farms', flat=True)
Charges.Objects.filter(chargeId=3383, farms__in=mikes_farm_list)