django 在串行器测试中设置kwargs

omqzjyyz  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(128)

我写了一个序列化器,在它的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())
tjvv9vkg

tjvv9vkg1#

您可以在序列化程式中传送具有其他字段的内容。

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

并使用序列化程序中的上下文获取。

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

相关问题