web-dev-qa-db-ja.com

Django変数をテンプレートに渡す

こんにちは、助けてくれてありがとう、私はコーディングが苦手です。

指摘するには:Djangoプロジェクトからデータベースからフロントエンドにデータを渡すプロジェクトを行っていますが、今のところDjangoテンプレートに、私は間違った変数タイプを渡しているのではないかと思います;考えについてコメントしてください。

これはviews.pyの私のコードです:

from Django.shortcuts import render

def index (requset):
    return render(requset,'myapp/index.html') # link to be able open frountend

def testdex(requset):
    text = "hello world"
    context ={'mytext' : text }
    return render(requset,'myapp/inculdes.html', context)

だから私の変数はインデックスページに拡張するinculdesに渡されます

これはinculdes.htmlで私のコードです:

{% exntends "myapp/index.html" %}

{% block includes %}
{{ mytext }}
{% endblock includes %}

これはindex.htmlの私のコードです:

<body>
{% block includes %} {% endblock includes %}    
</body>

私を助けるためにあなたの時間を与えてくれてありがとう、そして私にいくつかのコードを書くことができれば感謝します

9
Rookies DJ

あなたはこのようなものを試すことができます

views.py

from Django.template.response import TemplateResponse

def testdex(requset, template_name="myapp/inculdes.html"):
    args = {}
    text = "hello world"
    args['mytext'] = text
    return TemplateResponse(request, template_name, args)

inculdes.html

{% extends "myapp/index.html" %}
{% block includes %}
{{ mytext }}
{% endblock includes %}

settings.pyでテンプレートのパスを設定していることを確認してください

11
Ajay Kumar

あなたがするとき{% block content %}{% endblock content %} Djangoこのセクションを上書きできるようにしたいことを伝えています。Wordのコンテンツは、上書きしたい内容を反映したものにすることができます。

あなたがするとき{{ variable }} Djangoは、コンテキストを渡したいと伝えています。この例では、渡したい変数は、キーとしてTitle、値としてPortfolioと呼ばれています。Contextは、次のようにviews.pyを渡します:

def portfolio_home(request):
    return render(request, 'portfolio/work.html', {'title': 'Portfolio'})

コンテキスト(または変数)をベーステンプレートに渡したいとしましょう。この例では、ベーステンプレートのヘッドセクションのタイトルタグでタイトルを渡します。

base.htmlのhtmlファイルでは、次のようなものが必要です。

<!DOCTYPE html>
<html lang="en">

{% load staticfiles %}

    <head>
        <title>{{ title }}</title>
        ...........
    </head>
</html>

プロジェクトのurls.pyと、これにタイトルを渡したい他のアプリで、次のようなビューを作成する必要があります。

def portfolio_home(request):
    return render(request, 'portfolio/work.html', {'title': 'Portfolio'})
2
azmirfakkri

DjangoがHTMLに変数を渡せない理由がわかりました。

ビューで関数/モデルをアクティブにするアプリのURLを持っていなかった

そのような単純な間違いのため、私はとても恥ずかしいと思います。

私がする必要があるすべては私のアプリのURLにこのコードを追加することです

urlpatterns = [
path('', views.timedex, name='timedex'), #need add this 
path('', views.index, name='index'),
]
2
Rookies DJ

{%endblock include%}の前に{{block.super}}を追加します

1
M.G