如何在 Django 中将附加参数传递给 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 中定义为函数的视图。我想在 django 中重新创建与基于 class 的视图相同的视图,但我无法将其他参数(例如 course_id 传递到基于 class 的视图中,因为它显示错误。有人可以告诉我如何将上述功能重新创建为基于 class 的视图吗?

你可以用 'course_id' 做一个 DetailView 作为 pk_url_kwarg。等效的 DetailView 是:

from django.views.generic import DetailView

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

Note: normally a Django model is given a singular name, so Course instead of Courses.

可能与 URL-parameters and logic in django...

重复

您可以通过

访问您的course_id
self.kwargs['course_id']

在class-based视图函数中使用它