如何在 kwargs 中使用 UUID 字段?
How to use UUID field in kwargs?
我是 Django 的新手,我正在进行单元测试。这是我的模型:
class RandomModel(models.Model):
title = models.CharField(max_length=64, null=False, blank=False)
parent_user = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
parent_course = models.ForeignKey(Course, on_delete=models.CASCADE, default=1)
unique_id = models.UUIDField(
default=uuid.uuid4,
editable= False,
unique=True)
这是我的urls.py
path('myPath/retrieve/<uuid:unique_id>', views.RetrieveABCAPIView.as_view(), name = myPath_retrieve)
我正在 test.py
中尝试以下操作
class APIStatusCodeTests(APITestCase):
def setUp(self):
"""
Sets up testing environment. Add all endpoints to be tested
"""
tbl = RandomModel.objects.create(title = 'rofl')
tbl.save()
self.retrieve_method_endpointsdeck = [
reverse('flashcards:flashcards_api:myPath_retrieve', kwargs = {'unique_id': RandomModel.objects.unique_id('unique_id')})
我应该对反向功能进行哪些更改?我不知道如何在 kwargs 中获取 UUID?
谢谢!
您在测试设置方法中创建了一个 RandomModel
对象,因此您需要在 reverse
中为该对象使用 UUID - 如下所示:
reverse(
'flashcards:flashcards_api:myPath_retrieve',
kwargs={'unique_id': RandomModel.objects.first().unique_id}
)
请注意,这将获取在数据库中找到的第一个 RandomModel
对象 - 您可能希望更具体地说明要使用哪个对象 - 或者在此测试本身中创建一个对象.
我是 Django 的新手,我正在进行单元测试。这是我的模型:
class RandomModel(models.Model):
title = models.CharField(max_length=64, null=False, blank=False)
parent_user = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
parent_course = models.ForeignKey(Course, on_delete=models.CASCADE, default=1)
unique_id = models.UUIDField(
default=uuid.uuid4,
editable= False,
unique=True)
这是我的urls.py
path('myPath/retrieve/<uuid:unique_id>', views.RetrieveABCAPIView.as_view(), name = myPath_retrieve)
我正在 test.py
中尝试以下操作class APIStatusCodeTests(APITestCase):
def setUp(self):
"""
Sets up testing environment. Add all endpoints to be tested
"""
tbl = RandomModel.objects.create(title = 'rofl')
tbl.save()
self.retrieve_method_endpointsdeck = [
reverse('flashcards:flashcards_api:myPath_retrieve', kwargs = {'unique_id': RandomModel.objects.unique_id('unique_id')})
我应该对反向功能进行哪些更改?我不知道如何在 kwargs 中获取 UUID?
谢谢!
您在测试设置方法中创建了一个 RandomModel
对象,因此您需要在 reverse
中为该对象使用 UUID - 如下所示:
reverse(
'flashcards:flashcards_api:myPath_retrieve',
kwargs={'unique_id': RandomModel.objects.first().unique_id}
)
请注意,这将获取在数据库中找到的第一个 RandomModel
对象 - 您可能希望更具体地说明要使用哪个对象 - 或者在此测试本身中创建一个对象.