<p><strong>编辑</strong></p>
<p>我重读了你的问题,我想我知道出了什么问题。您已停止设置属性:</p>
<pre><code>p = Persona()
p.nombre = persona[1]['value']
p.apellido1 = persona[2]['value']
p.apellido2 = persona[3]['value']
</code></pre>
<p>出于某些原因,您停止在此处设置属性:</p>
^{pr2}$
<p>保存之前,请将这些属性更改为<code>Persona</code>上的属性:</p>
<pre><code>p.numeroidentificacion = persona[4]['value']
p.observaciones = persona[12]['value']
p.fechanacimiento = persona[6]['value']
p.direccionfoto = ''
p.genero = Genero.objects.get(pk=persona[5]['value'])
p.pais = Pais.objects.get(id=persona[8]['value'])
p.lugarnacimiento = persona[7]['value']
p.direccion = temp
p.profesion = persona[9]['value']
p.puesto = persona[10]['value']
p.lugartrabajo = persona[11]['value']
</code></pre>
<p>之后,尝试保存它:</p>
<pre><code> p.save()
</code></pre>
<p>如果你的对象不是无,那么它应该保存。在</p>
<hr/>
<p><strong>原创:</strong></p>
<p>看起来您的ForeignKey是不可为null的ForeignKey:</p>
<pre><code>genero = models.ForeignKey(Genero, db_column='GeneroID',null=False)
</code></pre>
<p>如果将其更改为:</p>
<pre><code>genero = models.ForeignKey(Genero, db_column='GeneroID',null=True)
</code></pre>
<p>那么它可以为null。在</p>
<p>然而,IntegrityError使错误看起来是在数据库级别,因此在模型定义中修复此错误并不能完全解决问题。<code>IntegrityError</code>表明<strong>数据库</strong>实际上抛出了错误,因此您必须查看表定义和约束。在</p>
<p>您是否使用Django来设置表(<code>syncdb</code>或{<cd4>})?如果是这样,则必须在进行此编辑后运行迁移。在</p>
<p>如果不是,则需要发出适当的sequel语句,以使该列在数据库中可为null。在</p>
<p><strong>警告1:不要在没有测试的情况下简单地运行以下命令</strong></p>
<p><strong>警告2:如果您的应用程序依赖于迁移(South或在Django中是本机迁移),请使用它而不是下面的方法!</strong></p>
<p>如果您的应用程序不依赖于South或Django迁移,并且您已经(或过去有人)手动管理了表,那么您将需要发出SQL语句来修改表,以在这里接受一个可为NULL的值。在</p>
<p>执行此操作的SQL通常如下所示:</p>
<pre><code>ALTER TABLE `db_name`.`appname_persona`
MODIFY COLUMN `GeneroID` int(11) DEFAULT NULL;
</code></pre>
<p>此外,看起来您正在为上面的许多字段传入<code>NULL</code>值,而模型定义中没有任何内容是可以为null的,因此您必须对每个希望经常为空的字段重复此练习,或者您可以将<code>CharField</code>定义为包含<code>blank=True</code>并传入空字符串。在</p>