gpt4 book ai didi

jquery - 在一页上显示多个依赖的Python模型

转载 作者:行者123 更新时间:2023-12-01 05:51:45 25 4
gpt4 key购买 nike

我正在为大学生构建一个网络应用程序。我现在看到的是主屏幕 - 用户将选择他们的部门(即 CSE)、类(class)(即 CSE 101)和教授(如果有多个/类(class))。

因此流程将如下所示:ECON --> ECON 101 --> Professor X。

所以我有 3 个模型,部门、类(class)、教授

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 个 View 构建了这个。我的第一个 View 显示了所有部门。根据用户单击的部门,它将加载一个新页面,其中显示与该部门关联的所有类(class)。然后,当用户单击类(class)时,它会加载一个新页面,其中显示与该类(class)关联的所有教授。

#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 页面上显示所有部门、类(class)和教授。但我无法正确链接部门 -> 类(class) -> 教授 b/c 目前我所拥有的只是页面上用于显示列表的功能的 1。

有什么办法可以解决这个问题吗?也许有更好的 jQuery 插件?或者我该如何补救?如果不清楚,请告诉我,或者我可以提供更多背景信息。

最佳答案

您需要使用重组标签。例如:

<ul id="departments">
{% for department in departments %}
<li rel="department_{{ department.id }}">{{ department.name }}</li>
{% endfor %}
</ul>

{% regroup courses by departments as department_list %}

{% for department in department_list %}
<ul id="department_{{ department.grouper.id }}">
{% for course in department.list %}
<li rel="course_{{ course.id }}">{{ course.name }}</li>
{% endfor %}
</ul>
{% endfor %}

对于教授来说也是如此。如果数据量很大,最好使用ajax请求。

关于jquery - 在一页上显示多个依赖的Python模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com