2015-07-27 6 views
0

Я довольно новичок в Django, и я пытаюсь настроить свой проект так, чтобы на главной странице была страница, а затем на главной странице была куча разных ссылок. Проблема заключается в том, что каждый раз, когда я нажимаю одну из моих других вкладок (продукты, логин, контакт) и т. Д., Она просто перезагружает содержимое блога homepages, несмотря на то, что я сказал ему загрузить что-то еще. поэтому, когда я нажимаю ссылки, они показывают, что я нахожусь на новой веб-странице (я вижу, что мой BASE_DIR с «/ курсами/продуктами /», например, в строке url, но всегда на том же сайте, на котором отображается view.homepage . Вот мой курсы/urls.py:Django не отображает содержимое блока

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

urlpatterns = [ 
       url(r'$', views.homepage, name='homepage'), 
       url(r'contact/$', views.contact, name='contact'), 
       url(r'login/$', views.login, name='login'), 
       url(r'products/$', views.products, name='products'), 
       url(r'register/$', views.register, name='register'), 
] 

вот мой layout.html, который находится в папке шаблона:

{% load static from staticfiles %} 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset = "utf-8"> 
      <title>HealthSmart</title> 
      <link href="{% static 'images/photo.jpg' %}" rel='icon' type='image/x-icon' /> 
      <link rel="stylesheet" href="{% static 'css/normalize.css' %}" /> 
      <link href="http://fonts.googleapis.com/css?family=Lora|Open+Sans:400italic,700italic,400,700,300,800" rel='stylesheet' type='text/css' /> 
      <link href='http://fonts.googleapis.com/css?family=Varela+Round|' rel='stylesheet' type='text/css' /> 
      <link rel="stylesheet" href="{% static 'css/pavle.css' %}" /> 
      <link rel="stylesheet" href="{% static 'css/responsive.css' %}" /> 
      <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    </head> 
    <body> 
     <header> 
      <a href="{% url 'courses:homepage' %}" id="logo"> 
       <h1>{% block title %} {% endblock %}</h1> 
      </a> 
      <nav> 
       <ul> 
        <li><a href="{% url 'courses:homepage' %}">Home</a></li> 
        <li><a href="{% url 'courses:products' %}">Products</a></li> 
        <li><a href="{% url 'courses:contact' %}">Contact</a></li> 
        <li><a href="{% url 'courses:login' %}">Login</a></li> 
       </ul> 
      </nav> 
     </header> 
     {% block content %} {% endblock %} 
     <div id="footer"> 
      <footer> 
       <a href="http://www.briggscorp.com/"><img src="{% static 'images/briggs.png' %}" alt="BriggsLogo" class="social-icon"></a> 
       <p>&copy;2015 HealthSmart Prototypes.</p> 
      </footer> 
     </div> 
    </body> 
</html> 

и, наконец, вот мой views.py:

from django.shortcuts import get_object_or_404 
from django.shortcuts import render 

from .models import Owner, Device, Page 

# Create your views here. 

def homepage(request): 
    home = Page.objects.all() 
    return render(request, 'courses/homepage.html', {'homepage': homepage}) 

def contact(request, contact_pk): 
    contact = get_object_or_404(Page, pk=contact_pk) 
    return render(request, 'courses/contact.html', {'contact': contact}) 

def login(request, login_pk): 
    login = get_object_or_404(Page, pk=login_pk) 
    return render(request, 'courses/login.html', {'login': login}) 

def products(request, products_pk): 
    product = get_object_or_404(Page, pk=products_pk) 
    return render(request, 'courses/products.html', {'product': product}) 

def register(request, register_pk): 
    register = get_object_or_404(Page, pk=register_pk) 
    return render(request, 'courses/register.html', {'register': register}) 

Кроме того, я буду включать homepage.html и products.html только в случае, если: homepage.html:

{% extends "layout.html" %} 

{% block title %}{{ page.title }}{% endblock %} 
{% block content %} 
<article> 
    <div class="main_body"> 
     <div class="hep"> 
      <section class="product"> 
       <h3 id="purify">Purifying your life</h3> 
       <p id="smartprod">Meet our smart <a href="{% url 'courses:products' %}">products</a> today.</p> 
      </section> 
     </div> 
    </div> 
    <div id="information"> 
     <h3>Change your Home Environment with the new Briggs HealthSmart Air Purifier and Humidifier</h3> 
     <p>Run multiple devices at the same time all on your smartphone!</p> 
    </div> 
    <div id="getStarted"> 
     <p>If you have an account <a href="{% url 'courses:login' %}">Login</a>, or you can get started today and <a href="{% url 'courses:register' %}">Register</a>!</p> 
    </div> 
</article> 
{% endblock %} 

products.html:

{% extends "layout.html" %} 

{% block title %}{{ page.title }}{% endblock %} 
{% block content %} 
<article> 
    <div id="wrapper"> 
     <section> 
      <ul id="gallery"> 
       <li> 
        <a href="{% static 'images/air purifier 03272015.png' %}"> 
         <img src="{% static 'images/air purifier 03272015.png' %}" alt="" /> 
         <p>The Briggs Air Purifier.</p> 
        </a> 
       </li> 
       <li> 
        <a href="{% static 'images/base 03272015.png' %}"> 
         <img src="{% static 'images/base 03272015.png' %}" alt="" /> 
         <p>The Briggs Base.</p> 
        </a> 
       </li> 
       <li> 
        <a href="{% static 'images/humidifier 03272015.png' %}"> 
         <img src="{% static 'images/humidifier 03272015.png' %}" alt="" /> 
         <p>The Briggs Air Humidifier.</p> 
        </a> 
       </li> 
       <li> 
        <a href="{% static 'images/water tank 03272015.png' %}"> 
         <img src="{% static 'images/water tank 03272015.png' %}" alt="" /> 
         <p>The Briggs Water Tank.</p> 
        </a> 
       </li> 
      </ul> 
     </section> 
    </div> 
</article> 
{% endblock %} 
+0

Может быть, вы должны показать содержимое contact.html, products.html и т.д. –

ответ

2

использование

 url(r'^$', views.homepage, name='homepage'), 

для ваша домашняя страница, вы также можете показать нам, как вы расширяете свой «layout.html»?

Для вашей контактной задачи вы можете добавить рк в шаблоне URL-адрес

 url(r'contact/(?P<contact_pk>\d+)/$', views.contact, name='contact'), 
+0

ОК, теперь, когда я делаю что для каждого другой, чем homepage.html. Я получаю сообщение об ошибке «contact() принимает ровно 2 аргумента (1 данный)», поэтому я думаю, что мне нужно либо избавиться от этого второго аргумента, потому что я не отправляю ему что-либо важное или не выясню, что Я могу отправить второй аргумент – user3393571

+0

вам нужно добавить contact_pk tu ваш шаблон url см. Обновленный ответ – maazza

+0

Я не передавал ничего значимого как contact_pk, поэтому я просто решил избавиться от него и получить их возьмите один аргумент. Спасибо за помощь! – user3393571

Смежные вопросы