Nasıl Django2.1 şablon içine döngü içinde bir değişken ayarlamak için?

oy
0

Ben verileri içeren bir bağlam sözlüğü şablonuna geçirilecek gerekir. Ben kullanarak uygulayan bazı bayrak değişkeni temel alarak iki div'leri geçiş yapmak için ihtiyaç {% with %}Django şablon etiketi. Ancak, ne zaman kullanarak değişkeni ayarlamak için deneyin {% set %}ben hata aşağıdaki alıyorum sözdizimi: - set', expected 'endwith'. Did you forget to register or load this tag?

Bana verilen çözüm aşağıdaki burada ama bana hata veriyor.

index.html

{% with flag=1 %}
                {% for benefit in content.benefits %}
                    <div style=background-color: #fff; class=row mt-5>
                        {% if not flag %}
                            <div class=col-lg-4 col-md-4 col-sm-12>
                                <img src={% static {{benefit.image}} %} alt=tablet
                                     class=img-responsive mx-auto mt-5 w-100 h-75 h-md-50 working-img>
                            </div>
                        {% endif %}
                        <div class=col-lg-8 col-md-8 col-sm-12 h-100>
                            {% for desc in benefit.heading %}
                                <div class=d-flex h-25 w-100 m-1 mt-4>
                                    <div class=col-3 col-sm-2 h-100>
                                        <div class=mx-auto>
                                            <i class=fas fa-check fa-2x style=color: #6fe33d></i>
                                        </div>
                                    </div>
                                    <div class=col-9 col-sm-10>
                                        <div class=d-flex flex-column>
                                            <div class=working-caption font-weight-bold>{{ desc }}</div>
                                            {#                                            <div class=py-2 working-description-courses text-muted>{{ description }}</div>#}
                                        </div>
                                    </div>
                                </div>
                            {% endfor %}
                        </div>
                        {% if flag %}
                            <div class=col-lg-4 col-md-4 col-sm-12>
                                <img src={% static {{benefit.image}} %} alt=tablet
                                     class=img-responsive mx-auto mt-5 w-100 h-75 h-md-50 working-img>
                            </div>
                        {% endif %}
                    </div>
                {% endfor %}
                {% set flag=1-flag %}
            {% endwith %}

settings.py

...
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'environment': 'myapp.jinja2.environment'
        },
    },
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
...
Oluştur 10/10/2019 saat 01:00
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Kullanmaya çalıştığınız komut, set, jinja2 şablon motoru değil, Django'nın şablon motoru ile kullanılabilir.

https://jinja.palletsprojects.com/en/2.10.x/templates/#assignments

Kullandığınız yana APP_DIRSAyarlarınızdaki jinja2 ve Django şablon motorları hem de kongre, sen herhangi jinja2 şablonlarını koymak gerekir courses/jinja2/courses/index.htmlyerine courses/template/courses/index.html. Daha fazla bilgi için buraya bakınız:

https://docs.djangoproject.com/en/2.2/topics/templates/#django.template.backends.jinja2.Jinja2

İyi şanslar!

Cevap 10/10/2019 saat 17:24
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more