2013-01-07 68 views
0

保存我的表時Django似乎沒有分配任何主鍵?我錯過了什麼?Django沒有分配任何主鍵

class Campaign(models.Model): 
    campaignid = models.CharField(max_length=255, primary_key=True, db_column='campaignID') 
    name = models.CharField(max_length=105) 
    active = HibernateBooleanField(default=False) 
    created = models.DateTimeField() 
    modified = models.DateTimeField(null=True, blank=True) 
    companyid = models.ForeignKey(Company, null=True, db_column='companyID', blank=True) 

    class Meta: 
     db_table = u'campaign' 


    def __unicode__(self): 
     return self.name 
+1

號擦桌子,重新同步,並轉儲模式。 –

+0

你真的可以有一個charfield作爲主鍵嗎? –

+0

我的表已經預填充使用Hibernate我不能刪除表,因爲它們包含來自另一個應用程序的數據。 – Prometheus

回答

0

好爲我的模型使用GUID,我不得不把它作爲CharField加入這個現有表生成似乎工作:

def save(self, *args, **kwargs): 
     if not self.campaignid: 
      self.campaignid = hashlib.sha1(str(random.random())).hexdigest() 
     super(Campaign, self).save(*args, **kwargs)