如何在 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视图函数中使用它
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视图函数中使用它