如何在kwargs中使用UUID字段?

2024-10-03 17:15:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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)

这是我的网址.py在

^{pr2}$

我正在尝试以下内容测试.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')})

我应该对反向函数做什么更改?我不知道如何在夸格斯得到UUID?在

谢谢你!在


Tags: pyselfidfalsedefaulttitleonmodels
1条回答
网友
1楼 · 发布于 2024-10-03 17:15:08

您已经在测试设置方法中创建了一个RandomModel对象,因此您需要在reverse中使用该对象的UUID-如下所示:

reverse(
    'flashcards:flashcards_api:myPath_retrieve', 
    kwargs={'unique_id': RandomModel.objects.first().unique_id}
)

请注意,这将获取在数据库中找到的第一个RandomModel对象(您可能需要更具体地了解要使用哪个对象),或者在这个测试中创建一个对象。在

相关问题 更多 >