我正在尝试在django-translated-fields的帮助下实现多语言 Django 网站。
我正在进行的项目基于cookiecutter-django和 Docker。
翻译适用于我的模型字段 - 除了 slug 字段。实际上,slug 的翻译也可以,但我无法使用 slug 字段来获得一个条目。
投票模型摘录:
class Voting(models.Model):
slug = TranslatedField(
models.SlugField(
max_length=80,
unique=True,
verbose_name="Voting URL slug",
blank=True
),
{
"de": {"blank": True},
"fr": {"blank": True},
"it": {"blank": True},
"rm": {"blank": True},
"en": {"blank": True},
},
)
项目的完整投票模型可以在这里看到。
观点摘录:
def voting(request, slug):
voting = get_object_or_404(Voting, slug=slug)
context = {
'voting': voting
}
return render(request, 'votes/single.html', context)
完整视图可以在这里看到
由于 Django 翻译的字段创建slug_en
,slug_de
等等,我找不到以相应语言获取 slug 的解决方案。
这应该很明显,因为 Django 翻译字段的文档说:
实际上没有创建模型字段。TranslatedField 实例是一个描述符,默认情况下充当当前语言字段的属性。
不幸的是,无论如何都没有得到它。知道如何更改投票模型以获取特定语言的条目吗?