0
我在C++中用Django中的WWW接口开发了一个应用程序。 到目前为止,我已经在C++中使用Boost.Python包装器编译为Linux中的共享对象。如何将Django unicode转换为C++ std :: string
现在我尝试在Django中运行这个框架。当我经过串从形式“CharField”我得到这个错误:
Python argument types in
CoreSystem.setOutput(CoreSystem, unicode)
did not match C++ signature:
setOutput(CoreSystem {lvalue}, std::string)
典负责人认为是在这里:
form = AnalyzeForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
s.setOutput(cd["output"])
s是此CoreSystem对象。如果我这样键入:
s.setOutput("DatabaseOutput")
它工作正常。我也用str(cd [“output”]),但之后没有任何反应。
我使用Django 1.4.1和Python 2.7.3
不幸的是,当我这样做,没有任何反应,但没有错误。我甚至把printf放在setOutput中,它不会打印任何东西。就好像setOutput根本没有被调用。 – eclipse
你的答案有窍门。以前的错误是由于服务器配置错误。 – eclipse
另一个有趣的尝试是将函数重载为接受'std :: wstring'。如果Boost.Python足够聪明,可以生成一个自动将'str'转换为'std :: string'的包装器,那么它可以将'unicode'转换为'std :: wstring'。 – user4815162342