簡體   English   中英

在Django中按外鍵過濾

[英]Filtering by Foreign Key in Django

我們使用CompanyRecord模型擴展了Django的用戶模型。 每個CompanyRecord都是一個都有個人資料的User。 當該用戶登錄系統時,我們可以將其數據提取到CompanyRecord中。

我們的Campaign模型通過外鍵與CompanyRecord相關。 因此,每個CompanyRecord都有許多活動。 我想參加與CompanyRecord相關的活動。 基本上,CompanyRecord是用戶。 CompanyRecord有許多活動。 當也是CompanyRecord的用戶登錄系統時,我想獲取它的關聯Campaign。
有鑒於此,我想將所有廣告系列都進行過濾,因為只有與我們用戶相關的廣告系列才會顯示。

Necessary parts of our data model

    #models.py
    class CompanyRecord(models.Model):
        user = models.OneToOneField(User)
        company_id = models.IntegerField(primary_key=True)
        company_name = models.CharField(max_length=100)



    class Campaign(models.Model):
        campaign_id = models.IntegerField(primary_key=True)
        company_id = models.ForeignKey(CompanyRecord)
        category_id = models.ManyToManyField(Category)
        campaign_title = models.CharField(max_length=100)


And the part of view.py

    @login_required
    def kampanyalar(request):
        if not request.user.is_authenticated():
            return HttpResponseRedirect('/login/')
        company = request.user.get_profile
        userscampaign = Campaign.objects.filter( ###problem### )
        content = {'kampanyalar': kampanyalar, 'sirket':sirket}
        return render_to_response('kampanyalar.html', content, context_instance=RequestContext(request))

通過反轉關系並使用company.campaign_set獲取CompanyRecord的所有Campaign

company = request.user.get_profile()
userscampaign = company.campaign_set.all()

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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