Forum >> Programmazione Python >> Web e Reti >> Problema con i tag {% %}

Pagina: 1 2 Avanti

Salve. Sto realizzando un piccolo blog con Django, per ora solo in locale. Il problema è che quando visualizzo le pagine queste appaiono bianche, se visualizzo il sorgente, risulta che tutto quello racchiuso tra i tag {% %} nei templates non viene processato e quindi inserito nella pagina. Quale potrebbe essere il motivo?

--- Ultima modifica di maurizioC71 in data 2018-01-04 01:35:45 ---
Ciao caro e benvenuto. :birrame:

Sto realizzando un piccolo blog con Django, per ora solo in locale. Il problema è che quando visualizzo le pagine queste appaiono bianche, se visualizzo il sorgente, risulta che tutto quello racchiuso tra i tag {% %} nei templates non viene processato e quindi inserito nella pagina. Quale potrebbe essere il motivo?

Mostra il tuo template, forse c'è un errore o più di uno. Comunque sia "dentro" {% %} devi metterci solo alcune istruzioni e non tutto l'html del template.
<html>
<head>
    <title>Blog</title>
</head>
<body>
{% if value %}
    Value esiste
{% endif %}
Altri contenuti
</body>
</html>
C'è un ottimo esempio sul sito ufficiale, in particolare questa sezione.

Cya
Grazie



Questo è il codice:

<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>post_list</title>
</head>
<body>
      {% for object in object_list %}
        <a href="/blog/post/{{object.id}}/"><h1>{{object.title}}</h1></a>
        {{ object.author }}
        {{ object.created_date }}
        {{ object.text|safe|linebreaks|truncatewords_html:50 }}
        {% endfor %}
</body>
</html>


E questo è quello che si vede poi nel sorgente:
<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>post_list</title>
</head>
<body>

</body>
</html>


--- Ultima modifica di maurizioC71 in data 2018-01-04 11:43:00 ---

--- Ultima modifica di maurizioC71 in data 2018-01-04 11:44:06 ---

--- Ultima modifica di maurizioC71 in data 2018-01-04 11:50:43 ---
Questo il wiews:



def lista(request):
return render(request, 'post_list.html')

Questo il wiews:

def lista(request):
return render(request, 'post_list.html')
Perché non gli hai passato nessuna collezione object_list da scorrere.
Prova con


from django.shortcuts import render
from collections import namedtuple

Object = namedtuple('Object', 'id title author created_date text')
context = {'object_list': [
    Object(1, 'uno', 'io', None, 'ciao'),
    Object(2, 'due', 'tu', None, 'addio'),
]}


def lista(request):
    return render(request, 'post_list.html', context)




--- Ultima modifica di ㎝ in data 2018-01-04 15:16:35 ---
THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Però io non conosco la lista in anticipo, poiché dipende dai post che vengono via via inseriti

--- Ultima modifica di maurizioC71 in data 2018-01-04 15:58:19 ---
Però io non conosco la lista in anticipo, poiché dipende dai post che vengono via via inseriti
Esatto. e qui entra in gioco la M di MTV, i Modelli.



THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Dovrei dunque sostituire i valori degli esempi, tipo Object(1, 'uno', 'io', None, 'ciao'), con quelli ricevuti da Model, ma come faccio? Io ho provato:
Object(Post.id, Post.title, Post.author, Post.created_date, Post.text)
dove Post è la classe a cui lego gli attributi 'title author created_date text' ma mi da errore

--- Ultima modifica di maurizioC71 in data 2018-01-04 21:21:16 ---
Dovrei dunque sostituire i valori degli esempi, tipo Object(1, 'uno', 'io', None, 'ciao'), con quelli ricevuti da Model, ma come faccio? Io ho provato:
Object(Post.id, Post.title, Post.author, Post.created_date, Post.text)
dove Post è la classe a cui lego gli attributi 'title author created_date text' ma mi da errore
No. Devi studiarti la parte Model della documentazione di Django (o di qualsiasi tutorial tu stia seguendo).

Nota che il mio utilizzo di namedtuple era solo per mostrarti velocemente la mancanza dell'utilizzo di context nel tuo codice, e deve essere sostituita con il corretto contesto ottenuto dal model.


THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Per ora ho risolto così:



from django.shortcuts import render
from .models import Post

Object= Post.objects.all().order_by('-created_date')
context={'object_list': Object}


def lista(request):
return render(request, 'post_list.html', context)

Grazie per i consigli davvero utili


--- Ultima modifica di maurizioC71 in data 2018-01-05 01:07:48 ---

--- Ultima modifica di maurizioC71 in data 2018-01-05 01:08:16 ---


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.