首先請看一下資料結構。共有三種型號
class Partner(models.Model):
name = models.CharField(max_length=100, blank=True, null=True)
group = models.OneToOneField(
Group, on_delete=models.DO_NOTHING, blank=True, null=True)
class CustomUser(AbstractUser):
email = models.EmailField(_('email address'), unique=True)
partner = models.ManyToManyField(
Partner, blank=True)
class Quote(models.Model):
partner = models.ManyToManyField(
Partner, blank=True, related_name='quote_partners')
在 Quote 和 CustomUser 合作伙伴欄位中可以有多個合作伙伴。我想在報價模型中設定的合作伙伴欄位中列出與合作伙伴鏈接的用戶電子郵件串列。這就是我正在做的;
quote = Quote.objects.get(id=id)
partners = quote.partner.all()
for partner in partners:
recipient_list = []
for user in CustomUser.objects.filter(groups__partner=partner):
recipient_list.append(user.email)
目前報價物件有 3 個合作伙伴,總共有 4 個用戶鏈接到這些合作伙伴,那么 中應該有 4 封電子郵件recipient_list,但這回傳空陣列 []。請強調我做錯了什么以及如何解決它。
uj5u.com熱心網友回復:
您可以[Django-doc]使用:.filter(…)
CustomUser.objects.filter(groups__partner__quote_partners__id=id)
這將查找鏈接到 a 的CustomUsers 鏈接到 aGroup鏈接到PartneraQuote的給定id。
您可以通過以下方式查詢:
CustomUser.objects.filter(partner__quote_partners__id=id)
查找具有關聯的CustomUsers,該關聯Partner具有關聯Quote作為id主鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/450241.html
標籤:Python django django-queryset
上一篇:在sendgrid中發送多個動態模板電子郵件時,個性化欄位錯誤
下一篇:如何獲取與外鍵欄位關聯的所有物件
