在Django中编写基于函数的视图的最佳方式是什么?

在Django中编写基于函数的视图的最佳方式是什么?,django,python-3.x,django-views,Django,Python 3.x,Django Views,在Django中编写视图(作为函数)的推荐方法是什么 我问的是可读性等问题。 例如:首先定义模板,然后进行翻译,然后定义模型,最后定义上下文 下面是一些示例代码: def index(request): # Landing page, translated to the browser's language (default is english) template = loader.get_template("koncerti/index.html") # Translato

在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))

我认为你做的太多了。视图应该进行适当的查询集,并对数据库进行更改。因此,它的主要任务是决定渲染什么以及更新什么。而不是如何更新它

决定翻译、url解析等通常是模板的任务。该模板具有模板标记,例如和

强烈建议在自己构建的原始url上使用
{%url…%}
。这使得犯错误的几率更小,而且很清楚你所指的是什么观点

您可能还想使用。此函数结合查找模板、使用模板呈现引擎呈现该模板以及返回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>
{%loadi18n%}

您在视图中做的太多了。通常,翻译和URL解析在模板中完成。非常感谢您的投入。我知道我迟了三个月才回复,但当你回复时,我真的无法理解你的答案。现在,我能更清楚地理解你的意思了。干杯