python - Django Test.py django.db.utils.IntegrityError:唯一约束失败:books_book.id
问题描述
当我跑步时python manage.py tests
我得到这个错误django.db.utils.IntegrityError: UNIQUE constraint failed: books_book.id
它导致大多数其他测试失败
这是完整的tests.py
文件:
class BookViewTests(TestCase):
self.user=get_user_model().objects.create_user(
username='test',
email='test@gmail.com',
city='city',
state='state',
password='secret',
id_2 ='96540845',
work = 'Wipro'
)
self.book =Book.objects.create(
title='How to Win Friends and Influence People',
author='Dale Carnegie',
genre ='Self-help',
owner =self.user,
id ='75777553',
is_approved=False,
available=False
)
#book detail view
def test_book_detail_view(self):
self.client.login(username='test',password='secret')
resp =self.client.get(reverse('book_detail',kwargs={'book_id':75777553}))
self.assertEqual(resp.status_code,200)
self.assertTemplateUsed(resp,'book_detail.html')
这是我的模型
My model
:
class Book(models.Model):
id=models.SlugField(max_length=8,primary_key=True)
genre_choices=[(i,i) for i in ['Biography','Business','Children','Classic','Comedy','Fantasy','History','Horror','Mystery','Mythology','Poetry','Religion','Romance','SciFi','Self-Help','Spirituality','Thriller','Non-Fiction','Fiction','Others']]
title =models.CharField(max_length =255)
author =models.CharField(max_length =255,validators=[alphabet_validate])
genre =models.CharField(max_length=100,choices=genre_choices)
available =models.BooleanField(default =True)
slug = models.SlugField(verbose_name='Slug', null=True,blank=True,max_length = 200)
如何解决这个问题?提前致谢。
解决方案
推荐阅读
- c# - C# 8.0 中的可空引用类型
- c - 奇怪的问题 - c 中的维数组输入
- python - 在 postgresql 中计算和存储向量的余弦相似度(点积)
- c# - 使用 Roslyn API 读取 *.csproj 属性值?
- python - Python 读取共享的 Outlook 收件箱,在子或正文中查找文本,如果找到,创建新文件夹或移动到现有
- mysql - 2 列,其中 1 列 [SQL]
- jquery - 如何在画布中使用具有 CSS 中描述的字体的文本元素
- mongodb - 在没有 YUM 的 CentOs 7 上安装 MongoDB。有 rpm 文件但没有 tgz
- wordpress - 从 Urls 中删除文件夹名称
- symfony - 从实体及其关系中选择特定字段