[英]How can I filter Django models using field lookups that span relationships and aggregation functions?
[英]How can i filter a models field in django?
我在后端開發方面很新,所以我有一個基本問題。
我有三種不同的模型,一個名為 Campaigns;
class Campaigns(models.Model):
channel = models.ForeignKey(Channels, blank=False, verbose_name="Channel Name", on_delete=models.CASCADE)
campaign_name = models.CharField(max_length=255, blank=False, verbose_name="Campaign Name")
第二個是;
class CampaignDetails(models.Model):
channel = models.ForeignKey(Channels, blank=False, null=True, verbose_name="Channel Name", on_delete=models.CASCADE)
name = models.ForeignKey(Campaigns, blank=False, null=True, verbose_name="Campaign", on_delete=models.CASCADE)
最后一個是;
Class Channels(models.Model):
name = models.CharField(max_length=50, null=False, blank=False, verbose_name="Tv Channel")
我想按頻道過濾 CampaignDetails 中的名稱。 就像我選擇頻道 1 一樣,我想按該頻道下的廣告系列名稱過濾名稱。 我該如何管理?
任何幫助表示贊賞,謝謝。
我不完全理解你的問題。 所以我可以給你一些決定。例如你可以過濾它:
channel=Channel.objects.get(pk=1) channel.campaigndetails_set.all() #or channel.campaigndetails_set.filter(name='your name')
champaigns = Campaigns.objects.filter(chanel=Channels.objects.get(name="Chanel name"))
for i in champaigns:
print(i.channel)
其他模型也是如此,您也可以通過其他方法做到這一點,但是您發現這很容易
在模板中
{%for i in champaigns%}
{{i.channel}}
{%endfor%}
我不知道你為什么有2個頻道。 但是如果你想按頻道過濾它
campaign_details = CampaignDetails.objects.filter(channel__name="insert_channel_name_here")
好吧,如果你想清理。 從活動詳細信息中刪除頻道,並將外鍵“名稱”的名稱更改為活動
campaign_details = CampaignDetails.objects.filter(campaign__channel__name="insert_channel_name_here")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.