Python Django未分配任何主键
保存我的表时,Django似乎没有分配任何主键?我错过了什么Python Django未分配任何主键,python,django,Python,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)
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
好的,因为我的模型是使用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)
否。擦除表、重新同步并转储架构。您真的可以将charfield作为主键吗?我的表已经使用Hibernate进行了预填充。我无法删除该表,因为它们包含来自其他应用程序的数据。好的,但即使它是有效的,Django如何知道如何填充它?此问题包含更多信息: