所以我在我的数据库中有一个模型,我现在已经意识到制作主键是没有意义的。我想从字段中删除主键属性并使用默认的django autofield作为主键。我怎样才能做到这一点?如果我尝试删除primary_key属性,它会创建新的id字段,但会要求默认值。如果我尝试创建一个新的id = autofield,它会做同样的事情。
以下代码......
class Textbook(models.Model):
textbook_name = models.CharField(max_length = 200)
class_name = models.CharField(max_length = 200)
author = models.CharField(max_length = 200)
isbn = models.CharField(max_length = 200)
auto_id = models.AutoField(primary_key = True)
@property
def NumWishes(self):
return self.wishlist_set.count()
@property
def NumPosts(self):
return self.posting_set.count()
@property
def DemSup(self):
if (self.posting_set.count() != 0):
showmethemoney = float((self.wishlist_set.count()))/(self.posting_set.count())
else:
showmethemoney = 0
return showmethemoney
class Meta:
unique_together = ('class_name', 'isbn')
def __str__(self):
return self.textbook_name
最初isbn是主键,但我现在想要添加一个带有类名的unique_together字段,因此我从isbn中删除了主键属性。该表目前是空的,这应该使这更容易。
感谢。
答案 0 :(得分:-1)
我在尝试迁移之前尝试过的事情:
- 使用命令删除所有表并清除迁移(不为我工作)
- 删除所有表并实际进入迁移文件夹并删除除 init .py之外的所有内容。 (这有效)
可以通过运行以下命令来完成postgresql数据库中的删除表: DROP TABLE" tablename&#34 ;;
我现在在我的应用程序中有一个迁移,但一切正常。