django - Django - 在页面上显示两个表数据
问题描述
我有一张课程表和考试表。我按院士筛选列出。当我输入课程内容时,我会看到课程的数据。我想在课程页面上查看属于该课程的考试信息,但由于表格不同,我无法显示。每课考试:期中考试和期末考试。例如 ; 期中考试,A,期末考试;期中考试B、期末考试、补考。
模型.py
def set_user_files_upload_path(instance, filename):
return '/'.join([
'users', 'user_%d' % instance.id, 'images', filename
])
class Lesson(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
lesson_name = models.CharField(verbose_name=_('Ders Adı'), max_length=150)
lesson_content = models.TextField(verbose_name=_('Ders İçeriği'), blank=True)
lesson_content_file = models.FileField(
verbose_name=_('Ders İçeriği Dosya'),
upload_to=set_user_files_upload_path, blank=True, null=True
)
lesson_notes = models.TextField(verbose_name=_('Ders Notu'), blank=True)
lesson_notes_file = models.FileField(
verbose_name=_('Ders Notu Dosya'),
upload_to=set_user_files_upload_path,
blank=True, null=True
)
def __str__(self):
return '{lesson_name}'.format(
lesson_name=self.lesson_name
)
class Meta:
verbose_name = 'Lesson'
verbose_name_plural = 'Lesson'
class Exam(models.Model):
lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE)
exam_type = models.CharField(verbose_name=_('Sınav Türü'), max_length=50)
exam_information = models.CharField(
verbose_name=_('Sınav Hakkında Bilgi'), max_length=500)
exam_file = models.FileField(
verbose_name=_('Sınav Kağıdı Dosya'),
upload_to=set_user_files_upload_path, blank=True, null=True
)
exam_answer_file = models.FileField(
verbose_name=_('Cevap Anahtarı Dosya'),
upload_to=set_user_files_upload_path, blank=True, null=True
)
def __str__(self):
return '{lesson} - {exam_type}'.format(
lesson=self.lesson.lesson_name,
exam_type=self.exam_type
)
class Meta:
verbose_name = 'Exam'
verbose_name_plural = 'Exam'
视图.py
class LessonListView(ListView):
model = Lesson
template_name = 'edms/lesson/list.html'
def get(self, request):
lessons = Lesson.objects.filter(user=request.user)
return render(request, self.template_name, {'lessons': lessons})
class LessonDetailView(DetailView):
model = Lesson
template_name = 'edms/lesson/detail.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['lesson_list'] = Lesson.objects.filter(pk=self.kwargs['pk'])
context['exam_list'] = Exam.objects.filter(pk=self.kwargs['pk'])
return context
解决方案
推荐阅读
- android - 从 .apk 到 .aab 的本地构建版本反应,如何将应用程序发送给客户端?
- python - PyTorch:使用相同随机种子的不同训练精度
- python-3.x - 里面怎么写
在 python 3 中使用 selenium webdriver 标记?
- python-3.x - 在 python 3.6 中出现缩进或空格错误
- java - 为什么私有 getter 方法违反封装,而缺少 getter 方法却没有?
- python-3.x - 无包几何平均算法
- testing - 如何使用 VS Code 配置 Mocha
- python - 如何使用python从web gif文件中提取文本
- python-3.x - 为什么要交换这些变量?
- c - 有没有办法以更短的方式编写检测点是否属于区域的条件?