繁体   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