два forloop, который генерирует каждый элемент, используя одну строку таблицы - PullRequest
0 голосов
/ 15 октября 2019

У меня есть два цикла из моего питона, которые генерируют каждый элемент с их соответствующими.

\ html

    <table>
    <tr style='height:19px;'>
  <th class="s51" colspan="4">Subject</th>
  <th class="s51" colspan="4">Teacher</th>
  <th class="s51" colspan="6">Room and Schedule</th>
</tr>

    <tr>
       {% for sensie in teachers %}
        <tr style='height:19px;'>  
          <td class="s51" colspan="4">{{sensie.Subjects}}</td>
          <td class="s51" colspan="4">{{sensie.Employee_Users}}</td>
        </tr>
      {% endfor %}
      {% for room in roomsched %}
       <tr style='height:19px;' >
         <td class="s51" colspan="4">{{room.Classroom}}-{{room.Day_Name}}</td>
       </tr>
      {% endfor %}
    </tr>
    {% endfor %}
    </table>

\ views

def enrollmentform(request):
    id = request.GET.get('StudentID')
    if StudentsEnrollmentRecord.objects.filter(Student_Users=id).exists():
      studentenroll = StudentsEnrollmentRecord.objects.filter(Student_Users=id)
      FeesType = SchoolFeesMasterList.objects.filter(Education_Levels__in=studentenroll.values_list('Education_Levels'))
      teachers = SubjectSectionTeacher.objects.filter(Education_Levels__in=studentenroll.values_list('Education_Levels'))
      roomsched = SubjectRoomSchedule.objects.filter(Subject_Section_Teacher__in=teachers)
      return render(request, 'Homepage/enrollmentrecords.html',{"studentenroll":studentenroll,"SchoolFeesType":FeesType,"teachers":teachers,"roomsched":roomsched})
    else:
      .
      .
      .
      return render(whatever I want)

\ models

class SchoolFeesMasterList(models.Model):
    Education_Levels= models.ForeignKey(EducationLevel, related_name='grade', on_delete=models.CASCADE,blank=True)
    Courses = models.ForeignKey(Course, on_delete=models.CASCADE,blank=True)
    Payment_Types = models.ForeignKey(PaymentType, on_delete=models.CASCADE,blank=True)
    Display_Sequence = models.IntegerField(blank=True, null=True)
    School_Fees_Type= models.ForeignKey(SchoolFeesType, on_delete=models.CASCADE,blank=True)
    Amount =  models.FloatField()
    Amount_Per_Unit = models.FloatField()
    Effectivity_Date_From = models.DateField(null=True,blank=True)
    Effectivity_Date_To = models.DateField(null=True,blank=True)
    Remark = models.TextField(max_length=500,blank=True)
    def __str__(self):
        suser = '{0.Education_Levels}   {0.Courses}'
        return suser.format(self)
class SubjectSectionTeacher(models.Model):
    School_Year = models.ForeignKey(SchoolYear, on_delete=models.CASCADE,null=True)
    Education_Levels = models.ForeignKey(EducationLevel, on_delete=models.CASCADE,blank=True)
    Courses= models.ForeignKey(Course, on_delete=models.CASCADE,null=True,blank=True)
    Sections= models.ForeignKey(Section, on_delete=models.CASCADE,null=True)
    Subjects= models.ForeignKey(Subject, on_delete=models.CASCADE,null=True)
    Employee_Users= models.ForeignKey(EmployeeUser, on_delete=models.CASCADE,null=True)
    Start_Date = models.DateField(null=True,blank=True)
    End_Date = models.DateField(null=True,blank=True)
    Remarks = models.TextField(max_length=500)
    def __str__(self):
        suser = '{0.Employee_Users}'
        return suser.format(self)
class StudentsEnrollmentRecord(models.Model):
    Student_Users = models.ForeignKey(StudentProfile, on_delete=models.CASCADE,null=True)
    School_Year = models.ForeignKey(SchoolYear,  on_delete=models.CASCADE, null=True, blank=True)
    Courses = models.ForeignKey(Course,  on_delete=models.CASCADE, null=True, blank=True)
    Section = models.ForeignKey(Section,  on_delete=models.CASCADE, null=True,blank=True)
    Payment_Type = models.ForeignKey(PaymentType, related_name='paymenttype', on_delete=models.CASCADE, null=True)
    Education_Levels = models.ForeignKey(EducationLevel, related_name='gradelevel', on_delete=models.CASCADE,null=True)
    Discount_Type = models.ForeignKey(Discount, on_delete=models.CASCADE,null=True)
    Remarks = models.TextField(max_length=500,null=True)
    def __str__(self):
        suser = '{0.Student_Users}  {0.Education_Levels}'
        return suser.format(self)
class SubjectRoomSchedule(models.Model):
    Subject_Section_Teacher = models.ForeignKey(SubjectSectionTeacher, on_delete=models.CASCADE,null=True)
    Classroom =models.ForeignKey(Room, on_delete=models.CASCADE,null=True)
    Day_Name= models.ForeignKey(DayName, on_delete=models.CASCADE,null=True)
    Time_From= models.DateField(null=True,blank=True)
    Time_To= models.DateField(null=True,blank=True)
    Remarks = models.TextField(max_length=500,null=True)

    def __str__(self):
        suser = '{0.Subject_Section_Teacher}'
        return suser.format(self)

Как мне сделать так, чтобы он был правильно отформатирован в таблице? Я уже пытался выровнять его и суетиться с ним, но я не получил желаемого результата.

Я просто хочу, чтобы это была простая таблица, например, как мне этого добиться?

Subject            Teacher                Room
math             teachername             room512

1 Ответ

0 голосов
/ 15 октября 2019

Вероятно, так:

{% for room in roomsched %} 
        <tr style='height:19px;'>  
          <td class="s51" colspan="4">{{room.Subject_Section_Teacher.Subjects}}</td>
          <td class="s51" colspan="4">{{room.Subject_Section_Teacher.Employee_Users}}</td>
        </tr>
       <tr style='height:19px;' >
         <td class="s51" colspan="4">{{room.Classroom}}-{{room.Day_Name}}</td>
       </tr>
{% endfor %}

Поскольку SubjectRoomSchedule имеет FK до SubjectSectionTeacher. Таким образом, вы можете получить доступ к значению SubjectSectionTeacher из SubjectRoomSchedule объекта с помощью атрибута SubjectSectionTeacher.

Также рассмотрите возможность переименования имени поля класса в snake_case согласно pep8 руководство по стилю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...