从 WordPress 迁移到 Django 时,如何将百分比编码的 slug 字段转换为 unicode?

How do I convert percent encoded slug fields to unicode when migrating from WordPress to Django?

我正在将 Wordpress 数据迁移到 Django。当前网站标题、内容、别名均为印地语。

我正在使用 wordpress_xmlrpc 通过 xmlrpc 从 WordPress 导入数据。

所有的内容标题,内容也是印地语,访问保存好了

    instance.name = post.title
    instance.content = post.content

虽然 Django slugs 有问题。

试过以下方法,还是不行。

    instance.slug = unicode(post.slug)
    instance.slug = post.slug

为了不工作,在一种情况下,slug 被保存为

     %e0%a4%9c%e0%a4%b2%e0%a5%8d%e0%a4%a6-%e0%a4%b8%e0%a4%bf%e0%a4%b2%e0%a5%8d%e0%a4%b5%e0%a4%b0-%e0%a4%b8%e0%a5%8d%e0%a4%95%e0%a5%8d%e0%a4%b0%e0%a5%80%e0%a4%a8-%e0%a4%aa%e0%a4%b0-%e0%a4%a6%e0%a4%bf

也无法访问

获取 404,未找到

的页面
 http://localhost:8010/%E0%A4%9C%E0%A4%B2%E0%A5%8D%E0%A4%A6-%E0%A4%B8%E0%A4%BF%E0%A4%B2%E0%A5%8D%E0%A4%B5%E0%A4%B0-%E0%A4%B8%E0%A5%8D%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A5%80%E0%A4%A8-%E0%A4%AA%E0%A4%B0-%E0%A4%A6%E0%A4%BF/

WordPress 有 slug 之类的 /तापसी-पन्नू-ने-अक्षय-कुमा/

有谁知道如何解决这个问题。

要在迁移中转换百分比编码,您可以使用 django 的内置 uri_to_iri 函数。

>>> from django.utils.encoding import uri_to_iri
>>> old_slug = '%e0%a4%9c%e0%a4%b2%e0%a5%8d%e0%a4%a6-%e0%a4%b8%e0%a4%bf'
>>> new_slug = uri_to_iri(old_slug)
>>> print(old_slug, '->', new_slug)

%e0%a4%9c%e0%a4%b2%e0%a5%8d%e0%a4%a6-%e0%a4%b8%e0%a4%bf -> जल्द-सि

这应该将 wordpress slug 转换为 unicode:

instance.slug = uri_to_iri(post.slug)