django - django所有者权限详细视图
问题描述
这是我的代码
class EnrollmentDetail(generic.DetailView):
model = Enrollment
template_name = 'enrollments/enrollment_detail.html'
context_object_name = 'enrollment
简单的 djeneric django 详细视图。我希望只有此视图的所有者才能访问它。其他我不想去的人都去拿它。我想限制他们的访问。我认为在这种情况下会引发错误,但不知道是哪一个。这很令人沮丧,因为它不是复杂的问题但无法解决。我检查了很多关于这个问题的帖子,但没有一个提供简洁干净的解决方案(装饰器、supers()、查询集等)
这是我的模型
class Enrollment(models.Model):
"""Defines Enrollment model"""
doctor_name = models.ForeignKey(DoctorProfile, on_delete=models.CASCADE)
patient_name = models.CharField(max_length=30)
symptoms = models.CharField(max_length=80)
diagnosis = models.CharField(max_length=30)
received_at = models.DateTimeField(auto_now=True)
room_number = models.PositiveIntegerField()
感谢帮助
解决方案
简单地做一个 if 语句并检查登录用户是否具有超级用户权限:
class EnrollmentDetail(generic.DetailView):
if request.user.is_superuser:
model = Enrollment
template_name = 'enrollments/enrollment_detail.html'
context_object_name = 'enrollment
else:
# redirect to page
推荐阅读
- typescript - 您可以将 for in 循环中的键转换为接口的属性吗?
- html - 无法让图像链接出现在水平线上
- php - 如何以预设尺寸(800*400px)裁剪图像的选定部分?
- spring-boot - 反应式 LdapTemplate 的可用性
- c++ - 正在解压缩和提取空文件
- c++ - 克隆使用 vcpkg 的项目时如何安装软件包
- python - Python连接字节问题(二)
- javascript - TypeError:无法读取 Angular 8 中未定义的属性“sendNotification”
- dll - 如何让 gnatmake 为 Ada .dll 创建映射文件?
- npm - 错误代码:135 - 在 package.json 中调用 npm run protractor 时 ECONNREFUSED