擅长:python、mysql、java
<pre><code>class AddSubnet(CreateView):
site_id = self.kwargs['site_id']
site = get_object_or_404(SiteData, pk=site_id)
</code></pre>
<p>在类定义中不能像这样访问<code>self</code>。此代码在加载模块时运行。还没有请求,因此<code>self.kwargs</code>不存在。你知道吗</p>
<p>您可以将代码移到dispatch方法中:</p>
<pre><code>@method_decorator(user_passes_test(lambda u: u.has_perm('config.add_subnet')))
def dispatch(self, *args, **kwargs):
self.site_id = self.kwargs['site_id']
self.site = get_object_or_404(SiteData, pk=self.site_id)
return super(AddSubnet, self).dispatch(*args, **kwargs)
</code></pre>
<p>然后在其他方法中使用<code>self.site_id</code>和<code>self.site</code>。你知道吗</p>