Итак, у меня есть модель в моей базе данных, что я теперь понял, что не имеет смысла делать первичный ключ. Я хотел бы удалить атрибут первичного ключа из поля и использовать по умолчанию django autofield в качестве первичного ключа. Как я могу это сделать? Если я попытаюсь удалить атрибут primary_key, он создаст новое поле id, но запросит значение по умолчанию. Если я попытаюсь создать новый id = autofield, он сделает то же самое.Django - Как удалить атрибут primary_key из поля?
код ниже ...
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. В настоящее время таблица пуста, что должно сделать это проще.
Спасибо.
Я сомневаюсь, что вы можете сделать это, не отбросив стол полностью. –
Итак, закомментируйте все, что нужно делать с таблицами, запустите psql и отбросьте таблицы, раскомментируйте и makemigations? – Programmingjoe
Не думайте, что вам нужно что-то прокомментировать. Просто отбросьте таблицы в psql, удалите все существующие миграции и снова makemigrations. –