如何在django中筛选模型字段?
我在后端开发方面很新,所以我有一个基本的问题 我有三种不同的模式,一种是命名为活动如何在django中筛选模型字段?,django,django-models,filtering,Django,Django Models,Filtering,我在后端开发方面很新,所以我有一个基本的问题 我有三种不同的模式,一种是命名为活动 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, bl
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")
我想按频道筛选活动详细信息中的名称。比如,如果我选择频道1,我想按该频道下的活动名称筛选名称。我该怎么办
非常感谢您的帮助。我不完全理解您的问题。所以我可以给你一些决定。例如,你可以过滤它:
channel=channel.objects.get(pk=1)
channel.campaigndetails_set.all()#或channel.campaigndetails_set.filter(name='your name')
其他模型也是如此,你也可以通过其他方法来实现,不过你觉得很容易
模板中
{%for i in champaigns%}
{{i.channel}}
{%endfor%}
我不知道你为什么有两个频道。但如果你想按频道过滤
campaign_details = CampaignDetails.objects.filter(channel__name="insert_channel_name_here")
如果你想清理的话。从活动详细信息中删除频道,并将外键“name”的名称更改为活动
campaign_details = CampaignDetails.objects.filter(campaign__channel__name="insert_channel_name_here")
所以你的活动细节已经和频道有关系了,有什么理由让活动也和频道有关系吗?我的想法是所有的活动都可以分配不同的频道,这就是为什么我把它们关联起来是的,我明白了,但是,活动细节“已经”和你的活动的频道有关系。那么,还有什么其他原因使活动也具有这种关系吗?我明白你的意思,我想使用渠道关系按渠道过滤活动,但我未能管理。这就是为什么我要问“我怎样才能按频道过滤活动详细信息”这在视图中可能有效,但我想在管理面板中过滤它。就像当我选择频道A时,我想看看哪些活动被添加到频道A中。我想在模型中过滤它
campaign_details = CampaignDetails.objects.filter(campaign__channel__name="insert_channel_name_here")