0
這更多的是什麼感覺像很多的工作/ hackish的代碼...將過濾後的模型關係傳遞給模板的理想方法?
說我有一些模型是這樣的:
class Semester(models.Model):
year = models.IntegerField()
month = models.IntegerField()
# ... some fields
class Course(models.Model):
semesters = models.ManyToManyField(Semester)
# ... some fields
class Section(models.Model):
semesters = models.ManyToManyField(Semester)
course = models.ForeignKey(Course, related_name='sections')
# ... more fields
所以,對於一個看法,我獲取一個列表按學期開設的課程。但我也想列出給定學期課程的部分。這產生了一個困境:我把這個放在哪裏?我不能做到這一點的模板(因爲模板不能真正帶有參數的過程方法),我總是一直在做這樣的事情:
def view(request, year, month):
# for simplicity, no error handling
semester = Semester.objects.get(year=year, month=month)
courses = []
for c in Course.objects.filter(semesters=semester):
courses.append({
'semesters': c.semesters.all(),
# repeat for every course field
'sections': c.sections.filter(semesters=semester),
})
# render template with courses variable
我覺得這不是最佳的方式,因爲有很多數據轉換隻是爲了模板而開心。我通常會爲那些不需要任何參數的模型編寫方法,但那些方法呢?