簡體   English   中英

如何在 Django 中過濾模型字段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM