django - 姜戈 | 通过实例查询集多对多关系
问题描述
我想显示每门课程的不同日期。一个课程也可以有多个日期。不幸的是,我找不到解决方案。
楷模:
class Course(models.Model):
course_number = models.CharField(max_length=24, blank=True)
course_location = models.ForeignKey(Course_location, on_delete=models.CASCADE)
course_dates = models.ManyToManyField('Course_dates', through="Course_Course_dates")
def __str__(self):
return self.course_number
class Course_Course_dates(models.Model):
course = models.ForeignKey(Course, on_delete=models.CASCADE)
course_dates = models.ForeignKey(Course_dates, on_delete=models.CASCADE)
def __str__(self):
return self.id
class Course_dates(models.Model):
date = models.DateField()
start = models.TimeField()
end = models.TimeField()
trainer = models.ManyToManyField('Trainer', through="Course_dates_trainer")
def __str__(self):
return self.date.strftime("%d.%m.%Y")
看法:
def course_list(request):
courses = Course.objects.all()
course_list = []
for course in courses:
course_location = course.course_location.description
dates = course.course_dates.all()
course_list.append({'course': course, 'course_location': course_location, 'dates': dates,})
context = { 'course_list': course_list, }
return render(request, 'kursverwaltung_tenant/course.html', context)
感谢帮助!!!
解决方案
您的课程查询集已经可以通过外键访问您的课程日期,因此您无需在视图中运行第二个日期查询集即可访问它们。
当您循环浏览课程时,您需要在模板中对这些课程的日期进行第二次循环。这是一个例子: 在 django 模板中显示外键值
推荐阅读
- python - /email-signup 中的 TypeError 类型为“WSGIRequest”的对象不是 JSON 可序列化的
- python - python 简单的套接字客户端/服务器示例
- swift - 如何回到之前的场景并重新加载数据?
- python - 为什么更改矩阵的元素会同时更改两行?
- list - SwiftUI List initializers 是如何实现的?
- node.js - 为什么我不能在开发模式下运行我的项目?
- css - 使用垫卡时无法使用绝对/相对位置
- python-3.x - Python splat-in-the-middle
- java - Full GC(堆检查发起的GC)
- lua - LUA - 从嵌套表中获取值