У меня есть две модели: Учитель и Класс, как показано ниже. Где Class и Учитель связаны с ManyToManyField в поле class_instructor. Это означает, что в классе более одного учителя. Теперь я хотел показать всех учителей, которые принадлежат к этому конкретному экземпляру класса и в подробном представлении класса.
Моя модель учителя
class Teacher(models.Model):
teachers_name = models.CharField(max_length=32,help_text="Enter a Teachers Name here")
teachers_speciality = models.CharField(max_length=32,help_text="Enter a Teachers Speciality.e.g. Drawing Instructor")
teachers_description = models.TextField(max_length=1200,help_text="Enter a Teachers Description")
teachers_image = models.ImageField(blank=True, null=True)
def __str__(self):
return self.teachers_name
Моя модель класса
class Class(models.Model):
class_name = models.CharField(max_length=120,help_text="Enter the class Name here")
class_duration = models.CharField(max_length=30,help_text="Enter class duration",default='1 Year')
class_instructor = models.ManyToManyField(Teacher)
available_seats = models.PositiveIntegerField(default=30)
class_description = models.TextField(max_length=500,blank=True,null=True)
course_description = models.TextField(max_length=2500,blank=True,null=True)
course_type = models.CharField(max_length=20,help_text="Enter the course type here,e.g. Basic")
class_iamge = models.ImageField(blank=True, null=True)
class_iamge_detail = models.ImageField(blank=True, null=True)
class_added_at = models.DateField(auto_now=False)
student_ages = models.IntegerField()
tution_fee = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.class_name
def get_absolute_url(self):
return reverse("class_detail", kwargs={"pk": self.pk})
Я пробовал следующий способ, например, используя get_context_data, где я пытался отфильтровать свою модель учителя с соответствующими ПК класса подробно. Но не в состоянии понять, что работает. Вместо этого я показал всех учителей на странице сведений о классе, но я хотел показать учителей, которые связывали только текущий класс в представлениях сведений о классе.
Представления сведений о моем классе
class ClassDetailView(DetailView): ## this context will bring the Class corrospondint to that pk
model = Class
template_name = 'home/class_detail.html'
context_object_name = 'class'
def get_context_data(self,**kwargs):
# this context will bring the Class corrospondnt to that pk
context = super(ClassDetailView,self).get_context_data(**kwargs)
context['teachers'] = Teacher.objects.all()
print(context)
return context
В моих шаблонах я пытаюсь показать как показано ниже .......
{% for teacher in teachers %}
<div class="teacher">
<img src="{% static 'images/team/teacher/1.jpg' %}" alt="teacher">
<h2>{{teacher.teachers_name}}</h2>
<span>{{teacher.teachers_speciality}}</span>
<p>{{teacher.teachers_description}}</p>
</div>
{% endfor %}