我的问题涉及Django中的API。我有几个序列化的对象,这很好用。问题是重音没有正确编码,例如:
L'\u00c9tranger #instead of L'étranger
要显示我以这种方式使用序列化器:
serializer = MyClassSerializer(MyObjects, many=True)
return JSONResponse(serializer.data)
我的JSONResponse
课程来自HttpResponse
:
from django.http import HttpResponse
(...)
class JSONResponse(HttpResponse):
"""
An HttpResponse that renders its content into JSON.
"""
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
通过搜索文档,我在JSONResponse
JSONencoder
中了解了一个可选参数,但documentation对此很不满意。
感谢您的阅读。
编辑:
当我这样做时:
打印h.request(" http://myu.rl/s/Camus%2BAlbert/")
我还有:
"titre": "L\'\\u00c9tranger"
这是我的livre模型:
class Livre(models.Model):
auteur = models.ForeignKey(Auteur)
titre = models.CharField(max_length=50)
genre = models.ForeignKey(Genre)
publish_date = models.DateField()
class Meta:
unique_together = (('auteur','titre', 'publish_date'),)
但是它没有存储在数据库中我只是在那种情况下将它用作包装器。
我可以直接执行填充Livre类的脚本,然后再将其提供给真正的API服务(序列化和制作json的那个),我有这个:
>>>>python book_search.py -s "Albert Camus"
L'Étranger
主要区块只需致电:GoogleBook.search(search_keywords)