python - Django 中的 AttributeError at/circular/1/detail/'CircularDetail' 对象没有属性 'pk'

标签 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'] = Circular.objects.get(pk=self.pk)
        ctx['sittings'] = Sitting.objects.all()
        ctx['ballot'] = Sitting.objects.all()
        return ctx

上面的 View 给了我以下错误:

回溯:

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'

我需要您的帮助来解决此问题。

最佳答案

URL参数是通过kwargs传递的,所以你可以这样访问它

self.kwargs.get("pk")

所以改变

ctx['c'] = Circular.objects.get(pk=self.pk)

ctx['c'] = Circular.objects.get(pk=self.kwargs.get("pk"))

关于python - Django 中的 AttributeError at/circular/1/detail/'CircularDetail' 对象没有属性 'pk',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38941276/

相关文章:

python - Django 如何为主页 URL 定义默认应用程序?

python - 我应该把 models.py 放在 Django 的什么地方?

python - django-allauth 社交帐户在登录时连接到现有帐户

python - 聚类之间的距离 kmeans sklearn python

python - 使用 sphinx 生成 python 文档时如何保留换行符

python - 将python列表中两个不同组的索引查找到两个列表中

python - 如何在 Python 中访问 netstat 数据?

python - 如何将一个字段显示为序列化器中的字符串?

python - Django-stripe 集成在付款后给出 403 Forbidden

python - 简单的 Python Pandas EMA (ewma)?