django中的阻止不会显示另一个视图

时间:2017-08-03 19:52:00

标签: python django

我在Django打招呼所以请尽量了解我。 我的django项目中的块有问题。我像这样

创建了 base.html
>

和{%block firmy%}向我展示了我想要的其他文件,但{%block kategorie%}没有显示任何内容。 在 views.py 我有代码:

{% 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>

并在 urls.py 我有代码:

from django.shortcuts import render
from .models import Witryna, Kategorie
from django.utils import timezone

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().order_by('glowna')
    return render(request, 'firmy/widok_kategorii.html', {'kategorie': kategorie})

并在最后 models.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.widok_strony, name='widok_strony'),
    url(r'^$', views.widok_kategorii, name='widok_kategorii'),
]

widok_kategorii.html

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

我真的不知道问题出在哪里但是当我在localhost:8000上打开浏览器时,我看不到类Kategorie的详细信息。

1 个答案:

答案 0 :(得分:1)

您对视图和网址的工作方式存在很大的误解。

网址只能由一个视图提供。该视图将完全负责创建响应,通常通过呈现单个模板来实现。您需要从该视图传递模板的所有信息。