繁体   English   中英

如何在 django 中将额外的 arguments 传递给 class 视图?

[英]How to pass additional arguments to class view in django?

def edit_course(request,course_id):
    course=Courses.objects.get(id=course_id)
    return render(request,"hod_template/edit_course_template.html",{"course":course,"id":course_id})

上面的代码显示了 django 中定义为 function 的视图。 我想在 django 中重新创建与基于 class 的视图相同的视图,但我无法将诸如 course_id 之类的附加参数传递到基于 class 的视图中,因为它显示错误。 有人能告诉我如何将上面的 function 重新创建到基于 class 的视图中吗?

您可以使用'course_id'作为pk_url_kwarg制作一个DetailView 等效的DetailView是:

from django.views.generic import DetailView

class EditCourseView(DetailView):
    model = Courses
    pk_url_kwarg = 'course_id'
    context_object_name = 'course'
    template_name = 'hod_template/edit_course_template.html'

注意:通常 Django model 被赋予一个单数名称,因此Course而不是Courses

django 中的 URL 参数和逻辑可能重复...

您可以通过以下方式访问您的course_id

self.kwargs['course_id']

在基于类的视图函数中使用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM