擅长:python、mysql、java
<p>它之所以被破坏,是因为您在重写<code>__init__</code>时破坏了Django模型使用的约定。为什么要实现<code>__init__</code>?你正在实施的是……已经实施了。在</p>
<p>你似乎在假设如何使用Django是没有根据的。我建议你在继续之前阅读<a href="https://docs.djangoproject.com/en/1.3/intro/tutorial01/" rel="nofollow">tutorial</a>。在</p>
<p>若要修复代码,请将其更改为以下内容:</p>
<pre><code>class Competition(MultiName):
def __init__(self, *args, **kwargs):
if "compId" in kwargs:
kwargs["entId"] = kwargs.pop("compId")
super(Competition, self).__init__(*args, **kwargs)
class MultiName(models.Model):
entId = models.CharField(null=True, max_length=25);
canonicalName = models.CharField(max_length=50, primary_key=True);
</code></pre>
<p>这里面有很多<a href="https://docs.djangoproject.com/en/1.3/#the-model-layer" rel="nofollow">great documentation for models</a>的内容。在</p>