gpt4 book ai didi

python - Django - ManyRelatedManager 对象在返回 Object 时不可迭代

转载 作者:行者123 更新时间:2023-12-04 12:18:29 25 4
gpt4 key购买 nike

在将一些项目添加到我的“国家”ManytomanyField 后,我在返回我的对象​​时遇到问题。我可以看到我的数据正在保存

class CompanyProfileManager(models.Manager):
@transaction.atomic
def register_company(self, name, description, tag_name, email, is_private, uses_credits, pays_subscription, pool,
facebook, twitter, web, country, videocall_doctor_to_patient, micro_type, can_move, fixed_percentage, fixed_price, fixed_tariff, instagram, subdomain, banner_description, banner_title, countries, **kwargs):
tag = Tag(name=tag_name, description=tag_name, is_active=True)
tag.save()

company = self.create_instance(name, description, email, is_private, uses_credits, pays_subscription, pool,
facebook, twitter, web, country, videocall_doctor_to_patient, micro_type, can_move, fixed_percentage, fixed_price, fixed_tariff, instagram, subdomain, banner_description, banner_title)

company.tag = tag
company.save()

for item in countries:
company.countries.add(item)

return company #Using Debug Mode, My project breaks right here

我真的迷路了,到目前为止我看到的唯一与我的问题相关的事情是使用 .all() 作为查询集

最佳答案

ManyToMany 属性(在您的情况下 countries )是 Manager , 更准确地说 ManyRelatedManager而不是 QuerySet .有点像objectsQuerySet.objects所以你需要使用 .all()如果您想遍历所有国家/地区:

for item in countries.all():
company.countries.add(item)

您也可以使用其他奇特的方法,例如 .filters() , .select_related() , 等等...

编辑

由于变量 countries不是查询集而是列表,我怀疑该错误不是由这段代码生成的,可能是在您尝试遍历 company.countries 之后而不是 company.countries.all()

关于python - Django - ManyRelatedManager 对象在返回 Object 时不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51390860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com