0
所以我有以下型號:Django的自定義保存不工作
class Info(models.Model):
user_id = models.BigIntegerField(primary_key=True)
#...
def save(self,*args,**kwargs):
print 1
is_created = False
if not self.pk:
print 2
is_created = True
super(Info, self).save(*args, **kwargs)
print 3
if is_created:
print 4
signals.info_created.send(sender=self.__class__,info=self)
現在我有這些打印語句來跟蹤什麼on.when去的我無論是運行或Info.create(...)
info = Info(...)
info.save()
我得到以下輸出:
1
3
這表明if not self.pk
語句評估爲f ALSE。現在我假設這是因爲我有一個自定義的主鍵需要在創建該對象時給出。所以這裏是我的問題:是我的假設是否正確?無論是否是,我怎樣才能得到這個自定義保存合作?
這是我之前的預期從構造kwargs填補。請注意,我的問題有兩個部分,請回答第二個 –
也許嘗試使用BigIntegerField(unique = True)? – vadimchin
所以這不回答我的問題。我的問題是,當我需要評估爲True時,'if not self.pk'這一行評估爲false。而且這個字段必須是一個主鍵,因爲數據庫中的優化和一致性 –