从一个用户创建的Django模型对象对所有其他用户可见

2024-09-28 01:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用Django的站点,它有一个名为“CampaignProfile”的模型,经过身份验证(登录)的用户可以通过表单创建CampaignProfile对象。一旦创建,模型对象就可以在经过身份验证的用户个人仪表板上查看。但是,当我登录到其他用户帐户时,相同的模型对象可以在他们的个人仪表板上查看,而这些对象不应该被查看。在

我如何指定只有任何给定用户创建的对象才能被该用户看到(除了Django管理员)?在

在dashboard.views.py公司名称:

def dashboard_main(request):
    if request.user.is_authenticated:
        all_campaigns = CampaignProfile.objects.all()
        return render(request, 'dashboard-main.html', {'all_campaigns': all_campaigns})
    else:
        return redirect('/users/login/?next=')

当我创建变量“user=request.user.id”时,我已经尝试过“user.CampaignProfile.objects.all()”,这样请求对象的用户只能看到自己的对象;但是这会导致错误,说用户没有属性CampaignProfile。虽然我已经将我的CampaignProfile模型的ForeignKey设置为与UserModel相关(下面的模型)。。。在

这是我的自定义用户模型 accounts.models.py公司名称:

^{pr2}$

任何建议都会很棒的谢谢。在


Tags: 对象django用户py模型名称身份验证request
1条回答
网友
1楼 · 发布于 2024-09-28 01:25:41

CampaignProfile模型中,创建映射到UserModelForeignKey(如果每个用户只能创建CampaignProfile的一个实例,则创建ForeignKey)。在

class CampaignProfile(models.Model):
    user = models.ForeignKey(UserModel)
    # other fields

然后过滤与登录用户相关的实例。在

^{pr2}$

相关问题 更多 >

    热门问题