简体   繁体   English

Django Web 应用程序中的属性错误

[英]Atrribute Error in Django web application

I have been trying this for some days now with no solution.I am getting this weird error after which I have made several trials all of which hasn't solved my issue, I would be glad to receive a solution.我已经尝试了几天没有解决方案。我收到了这个奇怪的错误,之后我进行了几次尝试,所有这些都没有解决我的问题,我很高兴收到解决方案。

ERROR LOGS

Traceback (most recent call last):
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\views\generic\base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\views\generic\list.py", line 142, in get
    self.object_list = self.get_queryset()
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\student_management_app\StaffViews.py", line 364, in get_queryset
    queryset = self.request.user.quizzes \
  File "C:\Users\Habib\Documents\django\django-new\student-management-system\venv\lib\site-packages\django\utils\functional.py", line 225, in inner
    return func(self._wrapped, *args)

Exception Type: AttributeError at /staff_quiz_home/
Exception Value: 'CustomUser' object has no attribute 'quizzes'
MODELS.PY

class CustomUser(AbstractUser):
    user_type_data = ((1, "HOD"), (2, "Staff"), (3, "Student"))
    user_type = models.CharField(default=1, choices=user_type_data, max_length=10)

class Quiz(models.Model):
    owner = models.ForeignKey(Staffs, on_delete=models.CASCADE, related_name='quizzes')
    name = models.CharField(max_length=255)
    subject = models.ForeignKey(Subjects, on_delete=models.CASCADE, related_name='quizzes')

class student(models.Model):
    name = models.CharField(max_length=255)
    admin = models.OneToOneField(CustomUser, on_delete = models.CASCADE)
    gender = models.CharField(max_length=50)
    quizzes = models.ManyToManyField(Quiz, through='TakenQuiz')

class Staffs(models.Model):
    name = models.CharField(max_length=255)
    admin = models.OneToOneField(CustomUser, on_delete = models.CASCADE)
    address = models.TextField()

class Subjects(models.Model):
    name = models.CharField(max_length=255)
    staff_id = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
VIEWS.PY

class QuizListView(ListView):
    model = Quiz
    ordering = ('name', )
    context_object_name = 'quizzes'
    template_name = "staff_template/quiz_home_page.html"

    def get_queryset(self):
        queryset = self.request.user.quizzes \
            .select_related('subject') \
            .annotate(questions_count=Count('questions', distinct=True)) \
            .annotate(taken_count=Count('taken_quizzes', distinct=True))
        return queryset

Thanks in advance, if you need anymore info please do let me know.提前致谢,如果您需要更多信息,请告诉我。

Your Quiz object is related to Staffs and not CustomUser so you should access it through您的测验对象与 Staffs 而不是 CustomUser 相关,因此您应该通过

 self.request.user.staffs.quizess

Other than that it is clear that you cannot do Query on a set so you should do something in a line of除此之外,很明显你不能对集合进行查询,所以你应该在一行中做一些事情

 Quiz.object.filter(owner__admin=request.user).
 ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM