我目前正在学习Django,我正在做电子成绩册。我已经尝试了所有的方法,阅读了所有的文档,但没有任何帮助。似乎我遗漏了一个简单的逻辑。我需要做两页:
第一个“教师界面”是一个简单的界面,教师只有一个下拉列表,教师选择必要的类(即1C,2B,4C)和按钮“学生”,这应该以某种方式从下拉列表输入所选的类,并重定向到第二页“类_学生”.
第二“班级_学生”类似于“教师_界面”,但是具有所选班级的学生表。
我在类Student和Class之间有一对多的关系:
首先,我尝试从“teacher_interface”重定向到“class_students”,在模板中使用:
第一个月
代码部分:1)models.py https://dpaste.org/eqxm 2)urls.py https://dpaste.org/eUEO 3)views.py https://dpaste.org/ap8D#L 4)模板教师_界面. html https://dpaste.org/v4m9 5)模板班级_学生. html https://dpaste.org/0gXK
但它告诉我:未找到不带参数的“class_students”的反向操作。尝试了1个模式:['学校/教师/(?P <class_id>[0-9]+)/班级/$']
我尝试了一切,但没有帮助,这和类似的:Django - getting Error "Reverse for 'detail' with no arguments not found. 1 pattern(s) tried:" when using {% url "music:fav" %}我明白也许这两个选项的重定向将不会在我的情况下工作:
{% url 'class_students' class.id %}
{% url 'class_students' class_id %}
我也不知道是否有可能在同一页上做。
所以我决定从django. shortcuts使用redirect进行重定向。我修改了我的teacher_interface视图,这样如果请求方法是POST,它就可以使用教师类选择的id进行重定向。我也在我的模板“teacher_interface. html”中做了这样的修改:
从
action="{% url 'class_students' %}"
到
action=""
更改视图:
def teacher_interface(request):
class_queryset = Class.objects.order_by("class_number", "group")
class_id = None
if request.method == "POST":
class_id = Class.objects.get("id")
return redirect("class_students", class_id)
context = {
"class_queryset": class_queryset,
"class_id": class_id,
}
return render(request, "teacher_interface.html", context)
但当我选择课程并点击“学生”按钮时,它显示给我:无法将关键字“i”解析到字段中。选项包括:class_number、课程、学科、组、id、学生、任务、type_of_class、type_of_class_id。id是一个关键字,但它试图只解析“i”。
我试过/读过这里的所有东西,但都不起作用。
我甚至这样写默认值:
class_id = Class.objects.get("id", "default")
我肯定我只是不明白如何正确地获得教师的选择,将其传递给另一个或相同的功能和重定向,保存此信息。我将非常感谢您的帮助,即使你只是建议我可以阅读弄清楚。
1条答案
按热度按时间qcuzuvrc1#
好吧,你漏掉了一些基本的概念。
在您的网站上views.py
这是正确的,您将把查询传递到模板
在您的模板上更改一些内容,如下所示:
那么你需要改变你的
teacher_interface
视图:您需要在www.example.com上导入重定向views.py