[英]Django - How to remove primary_key attribute from field?
因此,我在数据库中有了一个模型,现在我意识到创建主键没有任何意义。 我想从字段中删除主键属性,并使用默认的django自动字段作为主键。 我怎样才能做到这一点? 如果我尝试仅删除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中删除主键属性。 该表当前为空,这将使此操作更容易。
谢谢。
我在进行迁移和迁移之前尝试过的事情:
-删除所有表并使用命令清除迁移(对我不起作用)
-删除所有表,然后物理上进入migrations文件夹,并删除除init .py外的所有内容。 (这工作)
可以通过运行以下命令来完成在postgresql数据库中删除表的操作:DROP TABLE“ tablename”;
我现在在我的应用程序中进行了一次迁移,但是一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.