python - 必须使用对象 pk 或 slug 调用 Django 通用详细视图,但我的 URL 已经有 PK
问题描述
/mini_fb/profile/1/delete_status/14 处的 AttributeError 通用详细视图 DeleteStatusMessageView 必须使用 URLconf 中的对象 pk 或 slug 调用。
我的 PK 1 和 14 不是已经在 URL 中了吗?为什么我会收到此错误?
<a href="{% url 'delete_status' profile_pk=profile.pk status_pk=x.pk %}">delete</a>
class DeleteStatusMessageView(DeleteView):
'''A class for the view for deleting status messages.'''
template_name = 'mini_fb/delete_status_message.html'
queryset = StatusMessage.objects.all()
def get_context_data(self, **kwargs):
'''Return a dictionary with context data for this template to use.'''
context = super(DeleteStatusMessageView, self).get_context_data(**kwargs)
st_msg = StatusMessage.objects.get(pk=self.kwargs['status_pk'])
context['st_msg'] = st_msg
return context # return the dictionary
解决方案
DeleteView 参数应准确命名为 pk 或 slug
path('profile/<int:profile_pk>/delete_status/<int:pk>', DeleteStatusMessageView.as_view(), name='delete_status')
您可以设置pk_url_kwarg
是否要覆盖默认名称(SingleObjectMixin 文档)
推荐阅读
- spring-webflux - 如何将 Mono 流转换为 Flux
- notepad++ - 删除 Notepad++ 中的数字,但不更改括号中的数字
- android - 在 Android 应用程序中的数据类模型的属性中使用 Kotlin 折叠
- android - 在android中连接wifi时如何触发工作管理器?
- clojure - 使用哈希(映射)作为持久缓存中的键
- scala - Spark scala从数组列创建多个列
- wix - 使用 WiX 创建的 MSI 的数字文件名
- javascript - 我如何将伊拉克地图 (iraq.js) 的任何省份链接到一个 html 页面,我从 https://jsmaps.io/asia/javascript-map-of-iraq/ 下载
- python - while循环在一个jited函数中出现奇怪和不稳定的行为
- python - BeautifulSoup:无法获取下一个元素