Python 在django管理的模型中,有没有一种方法可以让用户只查看与他相关的对象?

Python 在django管理的模型中,有没有一种方法可以让用户只查看与他相关的对象?,python,django,django-permissions,Python,Django,Django Permissions,我是django的新手,我正在尝试完全在django管理层内部制作一个学校web应用程序 我试图做的事情是为学生设置一个权限,使他们能够只查看其学生字段与学生用户相同的分数 这是我的学生模型: class Student(models.Model): student_name = models.CharField(max_length=12) student_last_name = models.CharField(max_length=12,null=True) stu

我是django的新手,我正在尝试完全在django管理层内部制作一个学校web应用程序

我试图做的事情是为学生设置一个权限,使他们能够只查看其
学生
字段与学生用户相同的
分数

这是我的学生模型:

class Student(models.Model):
    student_name = models.CharField(max_length=12)
    student_last_name = models.CharField(max_length=12,null=True)
    student_age = models.PositiveSmallIntegerField(null=True)
    student_class = models.ForeignKey(Clas,on_delete=models.SET_NULL,null=True)
    student_idnum = models.CharField(max_length=15,null=True)
    user = models.OneToOneField(User,on_delete=models.SET_NULL,null=True)
    pub_date = models.DateTimeField("date published")
    def __str__(self):
        return self.student_name
这是我的学生评分模型:

class Score(models.Model):
    exam = models.ForeignKey(Exam,on_delete=models.SET_NULL,null=True)
    student = models.ForeignKey(Student, on_delete=models.CASCADE,null=True)
    score = models.FloatField(null=True)
    def __str__(self):
        return str(self.score)
我已经看到了
Meta
模型,我应该将其用于自定义权限,但我真的不知道该怎么做。

有一个示例可以满足您的要求

ModelAdmin上的get_queryset方法返回可由管理站点编辑的所有模型实例的queryset。覆盖此方法的一个用例是显示登录用户拥有的对象

来自django.contrib导入管理
类MyModelAdmin(admin.ModelAdmin):
def get_queryset(自我,请求):
qs=super().get_queryset(请求)
如果request.user.is_超级用户:
返回qs
返回qs.filter(author=request.user)
admin.site.register(MyModel,MyModelAdmin)
您可以根据需要更改查询集