我有一個使用Django的網站,其中有一個名爲'CampaignProfile'的模型 - 並且通過身份驗證(登錄)的用戶可以通過表單創建CampaignProfile對象。一旦創建,模型對象可以在經過驗證的用戶個人儀表板上查看。但是,當我登錄到其他用戶帳戶時,相同的模型對象在他們的個人儀表板上可見時,他們不應該。Django - 從一個用戶創建的模型對象對所有其他用戶可見
我該如何指定只有由任何給定用戶創建的對象才能被該用戶看到(除了Django Admin)?
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.CampaignProfile.objects.all()
」當我創建變量「user=request.user.id
」,使請求對象的用戶只能看到自己的;但是這會導致錯誤,指出用戶沒有屬性CampaignProfile。雖然我已經設置了ForeignKey的我CampaignProfile模型進行相關的usermodel(下面的模型)......
這裏是我的自定義用戶模型 accounts.models.py:
class UserModel(AbstractBaseUser):
user_email = models.EmailField(max_length=255, unique=True, verbose_name='Email Address')
user_fname = models.CharField(max_length=30, verbose_name='First Names')
user_lname = models.CharField(max_length=30, verbose_name='Last Name')
dt_joined = models.DateTimeField(auto_now_add=True)
dt_updated = models.DateTimeField(auto_now=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = 'user_email'
REQUIRED_FIELDS = ['user_fname','user_lname']
任何建議,非常感謝。
這是正確的答案。 Django沒有任何請求者請求的行級權限的概念。 – themanatuf