为啥我需要在 Django 中将 kwargs 设置为 CBV 的参数
Posted
技术标签:
【中文标题】为啥我需要在 Django 中将 kwargs 设置为 CBV 的参数【英文标题】:Why do i need to set kwargs as parameter of CBV in Django为什么我需要在 Django 中将 kwargs 设置为 CBV 的参数 【发布时间】:2018-12-10 16:39:26 【问题描述】:在覆盖 get_context_data 时,2 个参数被传递给 self 和 **kwargs,而 CBV 已经有 kwargs 在
self.kwargs
(从 URL 传递到 CBV 的参数)
为什么我们需要这个额外的 kwargs(一个传递给函数)
Example of overriding
甚至使用函数 kwargs 更新上下文字典,如第 64 行所示。
【问题讨论】:
【参考方案1】:get_context_data
中的参数kwargs
本身与视图的self.kwargs
属性无关。
调用捕获关键字参数kwargs
的参数只是一个命名约定。
我的建议是查看 Django 提供的不同的基于类的视图和底层的 Mixin 以获得更好的理解。网站ccbv.co.uk 对此非常有帮助。
【讨论】:
以上是关于为啥我需要在 Django 中将 kwargs 设置为 CBV 的参数的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Django 管理员的 save() 覆盖中将站点添加到对象似乎不起作用?
django 包含标签 kwargs 错误说“函数需要 2 个参数”