python - Django:将变量从get_context_data()传递到post()

原文 标签 python django

变量在get_context_view()中定义,因为它需要id来访问正确的数据库对象:

class FooView(TemplateView):
  def get_context_data(self, id, **kwargs):
    ---
    bar = Bar.objects.get(id=id)
    ---

  def post(self, request, id, *args, **kwargs):
    # how to access bar?
    # should one call Bar.objects.get(id=id) again?

如何将bar变量传递给post()
试图将其保存为fooview的字段,并通过self.bar访问它,但这不起作用。self.bar不可见

最佳答案

你应该把它倒过来。如果在bar中需要post(),则需要在此处创建它:

class FooView(TemplateView):
    def get_context_data(self, **kwargs):
        bar = self.bar

    def post(self, request, id, *args, **kwargs):
        self.bar = Bar.objects.get(id=id)
        ...

post()是在get_context_data之前调用的,这就是如果在post中定义它,则get_context_data看不到它的原因。

关于python - Django:将变量从get_context_data()传递到post(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28072987/

相关文章:

python - Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

python - 在python-social-auth中从Google和Facebook检索个人资料图片

python - 使用python将列表中的单引号元素转换为双引号

django - Soul-Thumbnail真的很慢

python - 具有多个单词的text.startswith方法

python - 字典生成器中的多个 'for' 循环

python - Python 3 Windows Service仅在 Debug模式下启动

python - 如何在Theano中更新扫描Cython代码?

python - 对象不支持项目分配错误

python - 如何使用ock.patch覆盖Django View 进行测试?