Как отобразить имя студента с указанием его c ID с использованием Django - PullRequest
0 голосов
/ 03 марта 2020

Я создал таблицу внутри моего views.py

students = StudentSubjectGrade.objects.filter(
    grading_Period=period).filter(
    Subjects=subject).order_by(
    'Students_Enrollment_Records', 'Grading_Categories'
).values('id','Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname',
         'Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname',
         'Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Middle_Initial',
         'Grading_Categories',
         'Average','Grading_Categories__PercentageWeight')

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)]
            id = student['id']
            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
            print(table_row[0])
        table_row[Categories.index(student['Grading_Categories']) + 1] = student['Average'] * student['Grading_Categories__PercentageWeight'] / 100

table.append(table_row)

это результат

enter image description here

Как отобразить Удостоверение личности специфицированного c студента?

это мой html

{% for row in table|slice:"1:" %}
        <tr class="tr2update">
            <td><input type="text" value="{{ id }}" name="studentname">{{ row.0 }}</td>
             <td class="tdupdate" hidden><input type="text" hidden></td>
            {% for c in row|slice:"1:" %}
            <td><input type="text" id="oldgrade" class="oldgrade" name="gradeupdate" value="{{c|floatformat:'2'}}" readonly></td>
            {% endfor %}
            <td data-id='row' id="ans"><input type='number' class='averages' step="any" name="average" readonly/></td>
        </tr>
     {% endfor %}

я уже пробовал в моем html, как это

<td><input type="text" value="{{ row.id }}" name="studentname">{{ row.0 }}</td>

но это не работает , пожалуйста, помогите мне, ребята, эта проблема уже почти неделю, до сих пор я не решил ее.

ОБНОВЛЕНИЕ когда я пытаюсь ответить на вопрос mr @MK Patel

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(id)
        table_row = [None for d in range(columns)]
        id = student['id']
        student_name = student[
                           'Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Lastname'] + ' ' + \
                       student['Students_Enrollment_Records__Students_Enrollment_Records__Student_Users__Firstname']
        table_row[4] = id

, я получаю эту ошибку из этой строки table_row [4] = id

IndexError: list assignment index out of range

ДРУГОЕ ОБНОВЛЕНИЕ когда я попробовал это, мистер @MK Patel дал

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)]
        id = student['id']
        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
        print(table_row[0])
    table_row[Categories.index(student['Grading_Categories']) + 1] = student['Average'] * student[
        'Grading_Categories__PercentageWeight'] / 100
    table_row.append(id)
    table.append(table_row)

мой стол испорчен, но теперь я вижу идентификационный номер студентов

enter image description here

1 Ответ

1 голос
/ 03 марта 2020

Вы должны добавить id в table_row список ниже ...

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)]
        id = student['id']
        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
        print(table_row[0])
    table_row[Categories.index(student['Grading_Categories']) + 1] = student['Average'] * student['Grading_Categories__PercentageWeight'] / 100
    table_row.append(id)
    table.append(table_row)

и повторить его в шаблоне, как показано ниже ...

{% for row in table|slice:"1:" %}
        <tr class="tr2update">
            <td><input type="text" value="{{ row.4 }}" name="studentname">{{ row.0 }}</td>
             <td class="tdupdate" hidden><input type="text" hidden></td>
            {% for c in row|slice:"1:" %}
            <td><input type="text" id="oldgrade" class="oldgrade" name="gradeupdate" value="{{c|floatformat:'2'}}" readonly></td>
            {% endfor %}
            <td data-id='row' id="ans"><input type='number' class='averages' step="any" name="average" readonly/></td>
        </tr>
     {% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...