我有一个apphook集成到django cms页面。显示应用模型中的动态内容。
现在我想根据网址定义的语言将不同的字段传递给模板,例如www.mysite.com/en/
我的示例模型:
class Entry(models.Model):
description_de = models.CharField(max_length=30, default='')
description_en = models.CharField(max_length=30, default='')
我的示例视图:
def list(request):
entry = Entry.objects.get(pk=1)
description = entry.description_de
return render(request, 'name.html', {'description': description})
现在我想在视图中检测语言(来自请求?)并以正确的语言将字段传递给模板。我怎么能这样做?
或者您建议更有效的解决方案?
答案 0 :(得分:1)
您可以在视图中使用request.LANGUAGE_CODE
检测语言
def list(request):
lang = request.LANGUAGE_CODE
entry = Entry.objects.get(pk=1)
description = getattr(entry, 'description_%s' % lang)
return render(request, 'name.html', {'description': description})
您可以考虑将modeltranslation用于此用例