我希望登录的用户只看到其保存的信息



我刚开始学习django。我创建了一个模型,我希望当用户登录时,用户应该只看到它保存的信息,但当另一个用户登录时,它看到其他用户保存的信息

view.py

def user_locker(request):
saved_info = Locker.objects.all()
all_saved_info = {'saved_info': saved_info}
return render(request, 'pwdbank/user_locker.html', all_saved_info)

model.py

class Locker(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
site_name = models.CharField(max_length=55)
site_url = models.URLField(max_length=55)
username = models.CharField(max_length=55)
email = models.EmailField(max_length=100)
password = models.CharField(max_length=55)
created_date = models.DateField(auto_now_add=True)
updated_date = models.DateField(auto_now=True)

def __str__(self):
return f'{self.site_name}'

谢谢。请帮助!

您应该只允许登录用户使用request

from django.contrib.auth.decorators import login_required
@login_required
def user_locker(request):
saved_info = Locker.objects.filter(user=request.user)
all_saved_info = {'saved_info': saved_info}
return render(request, 'pwdbank/user_locker.html', all_saved_info)

参考:https://docs.djangoproject.com/en/4.1/topics/auth/default/#the-login-required-decorator

最新更新