我正在爲大學生建立一個Web應用程序。我現在的主要屏幕是 - 用戶將選擇他們的部門(即CSE),班級(即CSE 101)和教授(如果有多個班級)。在第1頁上顯示多個相關蟒模型
所以流量將看起來像這樣ECON - > ECON 101 - >十教授
所以我有3種型號,部門,課程,教授
class Department(models.Model):
subject = models.CharField(max_length = 25)
class Course(models.Model):
department = models.ForeignKey(Department)
number = models.CharField(max_length = 50)
name = models.CharField(max_length = 100, blank = True, null = True)
class Professor(models.Model):
course = models.ForeignKey(Course)
name = models.CharField(max_length = 50)
我已經建立了這個有3個觀點。我的第一視圖顯示了所有的部門。根據用戶點擊哪個部門,它將加載一個顯示與該部門相關的所有課程的新頁面。然後,當用戶點擊課程時,它會加載一個新頁面,顯示與該課程相關的所有教授。
#urls.py
url(r'^$', 'index'),
#views.py
def index(request):
a = Department.objects.all()
return render_to_response('qanda/index.html', {'departments': a})
#index.html
{% for department in departments %}
<li><a href="/home/{{ department.id }}/">{{ department.subject }}</a></li>
{% endfor %}
#urls.py
url(r'^(?P<department_id>\d+)/$', 'courses'),
#views.py
def courses(request, department_id):
a = Department.objects.get(pk = department_id)
b = Course.objects.filter(department = a)
return render_to_response('qanda/courses.html', {'department':a,'courses':b})
#courses.html
{% for course in courses %}
<li><a href="/home/{{ department.id }}/{{ course.id }}/">{{ course.department }} {{ course.number }} {{ course.name }}</a></li>
{% endfor %}
等等。
現在它可以工作了,我想讓它看起來更漂亮一點,所以我用戶是一個jQuery插件,jGlideMenu(請參閱示例)。爲了讓插件工作,我需要在1個HTML頁面上顯示所有的部門,課程和教授。但我無法正確鏈接deparment - >課程 - >教授b/c,目前我所有的功能都只是在頁面上顯示列表。
有沒有辦法解決這個問題?也許一個更好的jQuery插件?或者我該如何補救?如果不清楚,請告訴我,或者我可以提供更多的上下文。
使用[django smart選擇](https://github.com/digi604/django-smart-selects)。 –