【发布时间】:2020-02-03 02:52:28
【问题描述】:
我正在尝试从我的模型主题中过滤所有主题,然后从我的其他模型评估中显示该主题内的所有评估,该模型评估也是特定员工的模型。
因此,当我单击从我的主题模型中获取的主题时,我想获取该主题中该员工的所有评估。我认为每个主题都是按钮或锚标签,单击时会显示该主题内的评估。
主题模型
class Subject(models.Model):
id = models.AutoField(primary_key=True)
subjectname = models.CharField(max_length=255, help_text="Indtast navnet på faget.")
slug = models.SlugField(max_length=200, unique=True)
评估模型
class Evaluation(models.Model):
id = models.AutoField(primary_key=True)
employee_num = models.ForeignKey('Employee', on_delete=models.CASCADE, null=True)
subjectname = models.ForeignKey('Subject', on_delete=models.CASCADE, null=True)
员工模型
class Employee(models.Model):
id = models.AutoField(primary_key=True)
slug = models.SlugField(max_length=200)
employee_num = models.IntegerField(help_text="Indtast medarbejderens MA-nummer. (F.eks 123456)")
firstname = models.CharField(max_length=30, help_text="Indtast medarbejderens fornavn.")
lastname = models.CharField(max_length=30, help_text="Indtast medarbejderens efternavn.")
subjectname = models.ForeignKey('Subject', on_delete=models.CASCADE, null=True)
员工主题视图
class EmployeeDetailView(DetailView):
template_name = 'evalsys/employee/alle_employees_eval.html'
model = Employee
# Uses employee PK to make a detail view
def view_employee_with_pk(self, pk=None):
if pk:
employee = Employee.objects.get(pk=pk)
else:
employee = self.employee
args = {'employee': employee, }
return render(self, 'evalsys/employee/alle_employees_eval.html', args)
def get_context_data(self, **kwargs):
context = super(EmployeeDetailViewDetailView, self).get_context_data(**kwargs)
context['evaluation'] = Evaluering.objects.all()
context['subject_list'] = Subject.objects.all()
context['eval_list'] = Evaluering.objects.all().filter(ma=self.object)
return context
模板
所以在我的模板中我会有类似的内容:
{% for subject in subject_list %}
<a href="">{{ subject.subjectname }}</a>
{% endfor %}
从那时起,我真的不知道如何过滤东西了。 希望它是有道理的,我翻译并从代码中删除了不相关的信息,所以请问是否有什么没有意义。
【问题讨论】:
标签: django django-models django-templates django-queryset django-filter