在序列化器测试中设置 kwargs

发布于 2025-01-11 01:33:31 字数 667 浏览 1 评论 0原文

我编写了一个序列化器,在其中的 validate() 中使用了 kwargs。 就是这样:

  def validate(self, value):
    course_id = self.context.get("view").kwargs.get("course_id ")
    ....

现在我想编写一个测试,但我不知道如何将 kwargs 传递给它。

这是我试图编写的测试:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
             )
    self.assertTrue(serializer.is_valid())

我对此进行了测试,但它不起作用:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
         kwargs={
            "course_id": test_course_id
        },

    )
    self.assertTrue(serializer.is_valid())

I wrote a serializer in which I used the kwargs in its validate() .
here is it:

  def validate(self, value):
    course_id = self.context.get("view").kwargs.get("course_id ")
    ....

now I want to write a test but I don't know how to pass the kwargs to it.

here is the test I am trying to write:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
             )
    self.assertTrue(serializer.is_valid())

I test this but it didn't work:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
         kwargs={
            "course_id": test_course_id
        },

    )
    self.assertTrue(serializer.is_valid())

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤独陪着我 2025-01-18 01:33:31

您可以在序列化器中发送带有附加字段的上下文。

CategorySerializer(data=self.category,context={'request': request,'course_id': test_course_id})

并在序列化器中使用上下文。

course_id = self.context.get('course_id')

You can send context in your serializer with additional fields.

CategorySerializer(data=self.category,context={'request': request,'course_id': test_course_id})

and get using context inside your serializer.

course_id = self.context.get('course_id')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文