我是django的新手,我正在尝试完全在django管理部门内部制作学校Web应用程序。
我想要做的事情就是让一个许可的学生,让他们只能看到的能力,scores
它的student
领域是一样的学生用户。
这是我的学生模型:
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。重写此方法的一个用例是显示登录用户拥有的对象
from django.contrib import admin
class MyModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)
admin.site.register(MyModel, MyModelAdmin)
您可以更改查询集以适合您的需求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句