【问题标题】:object is not subscriptable using django and python使用 django 和 python 对象不可下标
【发布时间】:2021-01-10 08:24:27
【问题描述】:

我有这个错误TypeError: 'StudentSubjectGrade' object is not subscriptable 当然过滤的数据存在于数据库中,我确信过滤器是正确的。我应该怎么做才能纠正这个?

注意:这是回收问题,请不要介意下面的评论,

def SummaryPeriod(request):
    period = request.GET.get('period')

    subject = request.GET.get('subject')
    teacher = request.GET.get('teacher')
    print(period, "period", "subject", subject)
    cate = gradingCategories.objects.all()

    students = StudentSubjectGrade.objects.filter(
        grading_Period=period).filter(
        Subjects=subject).filter(
        Teacher = teacher
    )

    print(students)

    Categories = list(cate.values_list('id', flat=True).order_by('id'))

    table = []
    student_name = None
    table_row = None
    columns = len(Categories) + 1

    table_header = ['Student Names']

    table_header.extend(list(cate.values('CategoryName', 'PercentageWeight')))

    table.append(table_header)

    for student in students:
        if not student['Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname'] + ' ' + \
               student[
                   'Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname'] == student_name:

            if not table_row is None:
                table.append(table_row)

            table_row = [None for d in range(columns)]

            student_name = student[
                               'Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname'] + ' ' + \
                           student['Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname']
            table_row[0] = student_name

            id = student['id']
            table_row.append(id)
        table_row[Categories.index(student['Grading_Categories']) + 1] = student['Average'] * student[
            'Grading_Categories__PercentageWeight'] / 100

    table.append(table_row)

    return render(request, 'Homepage/summaryPeriod.html',
                  {'table': table, "teacher": teacher, "subject": subject, "period": period})

这是我的回溯

Internal Server Error: /SummaryPeriod/
Traceback (most recent call last):
  File "C:\Users\USER\Desktop\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\USER\Desktop\venv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Desktop\Homepage\views.py", line 2693, in SummaryPeriod
    if not student['Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname'] + ' ' + \
TypeError: 'StudentSubjectGrade' object is not subscriptable
[01/Dec/2020 21:21:01] "GET /SummaryPeriod/?period=3&subject=18&teacher=5 HTTP/1.1" 500 70398

【问题讨论】:

  • 这些图片在哪里?
  • 该图像将保存在我的数据库和媒体文件夹中,
  • student 是模型实例,it is not subscriptable
  • 什么意思?
  • 请展示你的models.py

标签: python django


【解决方案1】:
TypeError: 'StudentSubjectGrade' object is not subscriptable

这意味着student 不是字典,你不能使用student['key'] 来得到你想要的。

你应该改用student.sth

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 2018-08-19
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    相关资源
    最近更新 更多