在Django中建议将视图(作为函数)写入视图的推荐方法是什么?
我在可读性等方面要求 例如:首先定义模板,然后进行翻译,然后定义模型,最后定义上下文。
这是一些示例代码:
def index(request): # Landing page, translated to the browser's language (default is english)
template = loader.get_template("koncerti/index.html")
# Translators: This is the text on the homepage buttons
concerts = gettext("Koncerti")
band = gettext("Band")
# Translators: This is the option in the language-switch box
foreignLanguage = gettext("eng")
koncertiUrl = '/koncerti/international' # The URL slug leading to 'koncerti' page
bandUrl = '/band/international' # The URL slug leading to 'band' page
translationMode = '' # The URL slug that is leading to slovenian translation mode
context = {
'Concerts' : concerts,
'Band' : band,
'foreignLanguage' : foreignLanguage,
'koncertiUrl' : koncertiUrl,
'bandUrl' : bandUrl,
'translationMode' : translationMode
}
return HttpResponse(template.render(context, request))
答案 0 :(得分:0)
我认为您在视图中做得太多。视图应该构成正确的查询集,并对数据库进行更改。因此,主要任务是确定要渲染的 和要更新的 。 不是如何更新它。
决定翻译,URL解析等通常是 template 的任务。模板具有模板标签,例如{% trans … %}
[Django-doc]和{% url … %}
[Django-doc]。
强烈建议在自己构造的原始URL上使用{% url … %}
。这样可以减少犯错的几率,而且很清楚您所引用的视图。
您可能还想使用render(..)
[Django-doc]。此功能结合了查找模板,使用模板渲染引擎渲染该模板以及返回HTTP响应的功能。
from django.shortcuts import render
def index(request):
return render(request, 'koncerti/index.html', {})
然后,您可以在模板中使用以下命令呈现该图片:
{% load i18n %}
<a href="{% url 'view-name' %}">{% trans 'Koncerti' %}</a>