简体   繁体   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})

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 Courses .注意:通常 Django model 被赋予一个单数名称,因此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.

相关问题 Django 基于类的视图:如何将附加参数传递给 as_view 方法? - Django class-based view: How do I pass additional parameters to the as_view method? 使用基于 django 通用 class 的视图时,如何传递类型 arguments? - How to pass type arguments when using a django generic class based view? 如何将参数传递给python greenlet作为附加参数 - How to pass arguments to a python greenlet as additional arguments 如何将带有装饰器中参数的视图函数传递给Django中的另一个装饰器 - How to pass a view function with arguments in a decorator to another decorator in django 如何重写Python中的方法以传递其他参数? - How to override methods in Python to pass additional arguments? 如何将额外的 arguments 传递给我的回调? - How to pass additional arguments to my callback? 向基于django类的视图添加其他参数 - Adding additional parameter to django class based view Django rest 框架 - 将附加参数传递给 validate_foo - Django rest framework - pass additional arguments to validate_foo Django:在View中传递参数并显示在页面上 - Django: Pass arguments in View and display on the page django将额外的参数传递给filterset_class - django pass extra arguments to filterset_class
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM