Почему код Django не отображается на сайте - PullRequest
2 голосов
/ 08 июля 2020

Я сделал простой код в django, но Charfield и URlField не показывают, что было задано администратором.

# index. html

{%for des in des %}
<a href="{{des.link.url}}">Click here</a>
<p>{{des.txt}}</p>
{%endfor%}

# view .py

from django.shortcuts import render
from .models import destination
def index(request):
    des = destination.objects.all()

    return render(request, 'index.html', {'des': des})

# models.py

from django.db import models

# Create your models here.
class destination(models.Model):
   link = models.CharField(max_length=200)
   txt = models.CharField(max_length=100, default=False)

Отображается изображение администратора .. ссылка и текст предоставлены администратором

enter image description here

Image shows the html code which doesn't appear in website. введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 08 июля 2020

Проблема в том, что вы вызываете несуществующий атрибут (url). Просто замените на следующее:

{%for d in des %}
    <a href="{{ d.link }}">Click here</a>
    <p>{{ d.txt }}</p>
{% endfor %}

Также обратите внимание, что вы не должны использовать одно и то же имя для итерации и переменной внутри l oop, как было хорошо сказано lmiguelvargasf

0 голосов
/ 08 июля 2020

Похоже, что проблема, с которой вы столкнулись, заключается в том, что вы используете des для переменной в for l oop, а также для коллекции, которую вы повторяете, можете ли вы изменить ее на:

{%for de in des %}
  <a href="{{de.link}}">Click here</a>
  <p>{{de.txt}}</p>
{%endfor%}

Также рассмотрите возможность переименования вашего класса destination в Destination.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...