擅长:python、mysql、java
<p>这是因为当第一个条件(first if)失败时,该块将不会执行,因此不会有任何名为<code>error</code>的变量,在第二个条件之后,python解释器也不会得到任何名为<code>error</code>的变量,这就是为什么它在赋值之前给出了<code>error</code>refereced。你知道吗</p>
<pre><code>mycharacters = Character.objects.filter(username_id=request.user.id)
if(mycharacters.count() >= 5):
error = True
if not error:
#save to DB
</code></pre>
<p>因此,在<code>if(mycharacters.count() >= 5)</code>之前,您可以设置一个变量<code>error</code>,其默认值为<code>False</code>,并且只有当条件变为真时才将其设置为<code>True</code>。你知道吗</p>