Django render_to_string在djangoRestFramework序列化程序的更新中不工作



我尝试使用django的render_to_string方法来生成html。这个函数实际上是在djangoRestFramework序列化程序的update方法内部发送的信号中调用的。通过这样做,我得到了错误:

AttributeError: 'functools.partial' object has no attribute '__module__'

我试着调试,结果发现render_to_string方法在序列化程序的update块中不起作用。当我使用来自rest_frameworkUpdateAPIView的泛型时,我没有设法在视图中放置断点。但是在调用url和视图之前,render_to_string运行良好。我试图从django源代码中找到错误,但找不到它的来源。

以下是我调用render_to_string函数的代码部分:

class AnalysisSerializer(serializers.ModelSerializer):
class Meta:
model = Object
fields = '__all__'
depth = 1
def update(self, instance, validated_data):
t = render_to_string('template/order.html')

确保在settings.py的template配置中正确配置了模板路径

好的,我明白为什么了。该错误不是由render_to_string方法引起的,而是由测试引起的。事实上,我在pytest过程中使用它时遇到了这个问题。导致此错误的功能是

django/test/utils.py:100: in instrumented_test_render
template_rendered.send(sender=self, template=self, context=context)

这是在测试期间调用的。在url测试中模拟这个函数,并在另一个测试中测试信号本身,解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新