Python 属性错误位于/circular/1/detail/&x27;循环尾部';对象没有属性';pk';在Django

Python 属性错误位于/circular/1/detail/&x27;循环尾部';对象没有属性';pk';在Django,python,django,Python,Django,上面的视图给出了以下错误: 回溯: class CircularDetail(DeleteView): model = Circular template_name = 'genre/circular_detail.html' def get_context_data(self, **kwargs): ctx = super(CircularDetail, self).get_context_data(**kwargs) ctx['c']

上面的视图给出了以下错误:

回溯:

class CircularDetail(DeleteView):
    model = Circular
    template_name = 'genre/circular_detail.html'

    def get_context_data(self, **kwargs):
        ctx = super(CircularDetail, self).get_context_data(**kwargs)
        ctx['c'] = Circular.objects.get(pk=self.pk)
        ctx['sittings'] = Sitting.objects.all()
        ctx['ballot'] = Sitting.objects.all()
        return ctx

我需要你的帮助来解决这个问题

URL参数通过kwargs传递,因此您可以通过这种方式访问它

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
  149.                     response = self.process_exception_by_middleware(e, request)

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
  147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
  88.         return handler(request, *args, **kwargs)

File "/home/ohid/test_venv/lib/python3.5/site-packages/django/views/generic/detail.py" in get
  118.         context = self.get_context_data(object=self.object)

File "/home/ohid/test_venv/myapp/genre/views.py" in get_context_data
  126.         ctx['c'] = Circular.objects.get(pk=self.pk)

Exception Type: AttributeError at /circular/1/detail/
Exception Value: 'CircularDetail' object has no attribute 'pk'
所以改变

self.kwargs.get("pk")


首先,将基类固定为
DetailView
(而不是
DeleteView

DetailView
继承自
django.views.generic.detail.SingleObjectMixin
(),它期望主键位于
slug
参数中,因此将URL regexp修复为

ctx['c'] = Circular.objects.get(pk=self.kwargs.get("pk"))
r'^circular/(?P[-\w]+)/detail$'

并使用视图中的
self.object
或模板中的
{{object}}
访问您的对象。

很有效,谢谢。您能告诉我如何将一个字段值从一个模型保存到另一个模型字段值吗。
ctx['c'] = Circular.objects.get(pk=self.kwargs.get("pk"))
r'^circular/(?P<slug>[-\w]+)/detail$'