[英]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})
The code above shows a view in django that is defined as a function.上面的代码显示了 django 中定义为 function 的视图。 I want to recreate the same view as a class based view in django but I couldn't pass in an additional argument such as course_id into the class based view as it shows an error.我想在 django 中重新创建与基于 class 的视图相同的视图,但我无法将诸如 course_id 之类的附加参数传递到基于 class 的视图中,因为它显示错误。 Can someone tell me how to recreate that above function into a class based view?有人能告诉我如何将上面的 function 重新创建到基于 class 的视图中吗?
You can make a DetailView
with 'course_id'
as pk_url_kwarg
.您可以使用'course_id'
作为pk_url_kwarg
制作一个DetailView
。 An equivalent DetailView
is:等效的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'
Note : normally a Django model is given a singular name, so
Course
instead of.注意:通常 Django model 被赋予一个单数名称,因此Courses
Course
而不是。Courses
Possible duplicate of URL-parameters and logic in django... django 中的 URL 参数和逻辑可能重复...
You can access your course_id
via您可以通过以下方式访问您的course_id
self.kwargs['course_id']
Use it inside class-based view functions在基于类的视图函数中使用它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.