![](/img/trans.png)
[英]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.