擅长:python、mysql、java
<p>我不知道您是否已经知道这一点,但您可以重写模型的save()函数。在</p>
<pre><code>class soapProdAPI(models.Model):
soap_id = models.PositiveIntegerField(primary_key=True)
soap_host = models.CharField(max_length=20)
soap_ip = models.GenericIPAddressField(default='0.0.0.0')
soap_asset = models.CharField(max_length=20)
soap_state = models.CharField(max_length=20)
# Override save
def save(self, *args, **kwargs):
if self.soap_ip != '0.0.0.0':
self.soap_ip = your_ip # Here you can get your old IP an save that instead of 0.0.0.0
</code></pre>
<p><strong>编辑</strong></p>
<p>你得到了</p>
<p><code>ValueError: The following fields do not exist in this model or are m2m fields: soap_id</code></p>
<p>因为您正在尝试更新<code>soap_id</code>,所以该字段被定义为模型的主键,因此在更新时它是不可变的。这就是为什么当你这样做的时候它会崩溃:</p>
<p><code>commit.save(update_fields=['soap_id', 'soap_host', 'soap_asset', 'soap_state'])</code></p>
<p>尝试从<code>update_fields</code>中删除<code>soap_id</code>。在</p>