[英]Django extends not working
我在执行html视图时遇到问题。 我有base.html,不会显示其他文件的子视图。 有人可以帮我做错什么吗? 这是我的文件: models.py
from django.db import models
from django.utils import timezone
class Kategorie(models.Model):
glowna = models.CharField(max_length=150, verbose_name='Kategoria')
class Meta:
verbose_name='Kategoria'
verbose_name_plural='Kategorie'
def __str__(self):
return self.glowna
class Witryna(models.Model):
nazwa = models.CharField(default="", max_length=150, verbose_name = 'Nazwa strony')
adres_www = models.CharField(max_length=70, verbose_name='Adres www')
slug = models.SlugField(max_length=250, verbose_name='Przyjazny adres url')
email = models.CharField(max_length=100, verbose_name='Adres e-mail')
text = models.TextField(max_length=3000, verbose_name='Opis strony')
kategoria = models.ForeignKey(Kategorie, verbose_name='Kategoria')
data_publikacji = models.DateTimeField(blank=True, null=True, verbose_name='Data publikacji')
class Meta:
verbose_name='Strona www'
verbose_name_plural = 'Strony www'
def publikacja(self):
self.data_publikacji=timezone.now()
self.save()
def __str__(self):
return self.nazwa
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^strony$', views.widok_strony, name='widok_strony'),
url(r'^$', views.widok_kategorii, name='widok_kategorii'),
]
views.py
from django.shortcuts import render
from .models import Witryna, Kategorie
from django.utils import timezone
#from django.db.models import Count
def widok_strony(request):
firmy = Witryna.objects.filter(data_publikacji__lte=timezone.now()).order_by('data_publikacji')
return render(request, 'firmy/widok_strony.html', {'firmy': firmy})
def widok_kategorii(request):
kategorie = Kategorie.objects.all()
wpisy_kat = Kategorie.objects.count()
return render(request, 'firmy/widok_kategorii.html', {'kategorie': kategorie, 'wpisy_kat': wpisy_kat})
widok_kategorii.html
{% extends 'firmy/base.html' %}
{% block kategorie %}
{% for kategoria in kategorie %}
<table>
<tr>
<th>
<a href="#">{{ kategoria.glowna|linebreaksbr }} </a>({{ wpisy_kat }})
</th>
</tr>
</table>
{% endfor %}
{% endblock kategorie%}
widok_strony.html
{% extends 'firmy/base.html' %}
{% block firmy %}
{% for firma in firmy %}
<div>
<img src="http://free.pagepeeker.com/v2/thumbs.php?size=s&url={{ firma.adres_www }}"/>
<a href="">{{ firma.nazwa }}</a><p>
</div>
{% endfor %}
{% endblock %}
base.html文件
{% include 'firmy/header.html' %}
<html>
<body>
<h4>Ostatnio dodane</h4>
{% block firmy %}
{% endblock %}
<h4>Kategorie</h4>
{% block kategorie %}
{% endblock %}
</body>
{% include 'firmy/footer.html' %}
</html>
当我尝试运行localhost:8000时,base.html仅向我显示widok_kategorii.html文件中的视图。当然,当我将url更改为localhost:8000 / strony时,该页面将完美加载。 但是我想在一页base.html上有这两个html文件
您是否尝试过重命名块,以便它们与您通过view.py传递的参数名称不重叠。
我会尝试以下方法:
widok_kategorii.html
{% extends 'firmy/base.html' %}
{% block content_kat %}
{% for kategoria in kategorie %}
<table>
<tr>
<th>
<a href="#">{{ kategoria.glowna|linebreaksbr }} </a>({{ wpisy_kat }})
</th>
</tr>
</table>
{% endfor %}
{% endblock %}
widok_strony.html
{% extends 'firmy/base.html' %}
{% block content_firm %}
{% for firma in firmy %}
<div>
<img src="http://free.pagepeeker.com/v2/thumbs.php?size=s&url={{ firma.adres_www }}"/>
<a href="">{{ firma.nazwa }}</a><p>
</div>
{% endfor %}
{% endblock %}
base.html文件
{% include 'firmy/header.html' %}
<html>
<body>
<h4>Ostatnio dodane</h4>
{% block content_firm %}
{% endblock %}
<h4>Kategorie</h4>
{% block content_kat %}
{% endblock %}
</body>
{% include 'firmy/footer.html' %}
</html>
认识到您不会一次在同一页面上获得两种内容。 如果您想将两个内容都放在同一页面上,则需要将视图和html结合在一起。
我将执行以下操作:
views.py
def widok_strony_kategorii(request):
firmy = Witryna.objects.filter(data_publikacji__lte=timezone.now()).order_by('data_publikacji')
kategorie = Kategorie.objects.all()
wpisy_kat = Kategorie.objects.count()
return render(request, 'firmy/widok_strony_kategorii.html', {'firmy': firmy,'kategorie': kategorie, 'wpisy_kat': wpisy_kat})
FIRMY / widok_strony_kategorii.html
{% extends 'firmy/base.html' %}
{% block content_kat %}
{% for kategoria in kategorie %}
<table>
<tr>
<th>
<a href="#">{{ kategoria.glowna|linebreaksbr }} </a>({{ wpisy_kat }})
</th>
</tr>
</table>
{% endfor %}
{% endblock %}
{% extends 'firmy/base.html' %}
{% block content_firm %}
{% for firma in firmy %}
<div>
<img src="http://free.pagepeeker.com/v2/thumbs.php?size=s&url={{ firma.adres_www }}"/>
<a href="">{{ firma.nazwa }}</a><p>
</div>
{% endfor %}
{% endblock %}
FIRMY / base.html文件
<<Same as the edited one above>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.