2013-04-01 21 views
5

Innanzitutto, vorrei ammettere che sono completamente nuovo in Django. Sto imparando come meglio posso. Sto lavorando a un libro chiamato "Beginning Django E-Commerce". Senza voler infrangere la copia giusta, forse voi ragazzi potete individuare dove ho sbagliato. Sto usando Django 1.4.3, il libro che sto usando è stato probabilmente scritto per Django 1, forse 1.1, ma qui va.django visualizza una pagina vuota

mia base.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "XHTML1-s.dtd" > 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>{% block title %}{% if page_title %}{{ page_title }} - {% endif %} 
      {{ site_name }}{% endblock %}</title> 
    <meta name="keywords" content="{{ meta_keywords }}" /> 
    <meta name="description" content="{{ meta_description }}" /> 
</head> 
<body> 
    {% block site_wrapper %}{% endblock %} 
</body> 
</html> 

mia Catalog.html:

{% extends "base.html" %} 

{% block site_wrapper %} 
<div id="main"> 
    <a href="#content" class="skip_link">Skip to main content</a> 
    <div id="banner"> 
      <div class="bannerIEPadder"> 
        <div class="cart_box"> 
          [link to cart here] 
        </div> 
        Modern Musician 
      </div> 
    </div> 
    <div id="navigation"> 
      <div class="navIEPadder"> 
        [navigation here] 
      </div> 
    </div> 
    <div id="middle"> 
      <div id="sidebar"> 
        <div class="sidebarIEPadder"> 
          [search box here] 
        <br /> 
          [category listing here] 
        </div> 
      </div> 
      <div id="content"> 
        <a name=”content”></a> 
        <div class="contentIEPadder"> 
          {% block content %}{% endblock %} 
        </div> 
      </div> 
    </div> 
    <div id="footer"> 
      <div class="footerIEPadder"> 
        [footer here] 
      </div> 
    </div> 
</div> 
{% endblock %} 

mio index.html:

{% extends "catalog.html" %} 

{% block content %} 
    <h2>Welcome!</h2> 
{% endblock %} 

Tutti questi file sono memorizzati in una directory di modelli. Il libro, a questo punto suggerisce ho eseguito il seguente comando:

python manage.py startapp preview 

e adattare il mio urls.py:

urlpatterns = modelli ('', ... (r '^ catalogo/$' , 'preview.views.home'),)

regolare il views.py sotto la directory di anteprima:

from django.shortcuts import render_to_response 

def home(request): 
    return render_to_response("index.html") 

Poi si dovrebbe essere in grado di vedere una pagina che dice:

Vai alla pagina principale [link al carrello qui] moderna Musicista [navigazione qui] [Casella di ricerca qui] [categoria messa in vendita qui ] Benvenuto! [footer here]

Tuttavia, tutto ciò che ottengo è una pagina vuota. Qualcuno può capire perché? (è possibile che il libro sia semplicemente scaduto) Quando visualizzo l'origine della pagina vuota.

che è effettivamente un rendering vuoto di base.html. Nel server di sviluppo, non ho errori:

python manage.py runserver localhost:8000  (wd: ~/websites/ecomstore) 
Validating models... 0 errors found Django version 1.4.3, using settings 'ecomstore.settings' 
Development server is running at http://www.localhost.com:8000/ Quit the server with CONTROL-C. 
[01/Apr/2013 02:13:06] "GET /catalog/ HTTP/1.1" 200 352 
[01/Apr/2013 02:13:08] "GET /catalog/ HTTP/1.1" 200 352 
[01/Apr/2013 02:13:09] "GET /catalog/ HTTP/1.1" 200 352 
[01/Apr/2013 02:33:33] "GET /catalog/ HTTP/1.1" 200 352 

full list of my steps, please see this site

+0

è la sorgente della pagina vuota troppo? – wRAR

+1

Perché stai torturando te stesso? Django ha un eccellente tutorial per principianti per aiutarti a capire le basi ... https://docs.djangoproject.com/en/1.4/intro/tutorial01/ – Ngenator

+0

@Ngenator Ah, ho completato il tutorial. :-) Questo libro insegna come costruire webshop. – LeeO

risposta

0

Try inserto {content blocco%%} nel Catalog.html o base.html il problema sarebbe perché sei eredita da catalogo < di base e su quei modelli non hanno questo blocco per il rendering.

0

risposta alla domanda è è l'errore umano. Ho avuto un tipo di codice, molto probabilmente un problema di distanza (purtroppo non sto con Eclipse). La risposta a questa lettura duro e ricontrollare il tutto prima di pubblicare, o si dovrà essere molto contrito (come me!). Sono fuori per nascondermi sotto il django rock che ho strisciato da sotto! Codifica felice!

0

per prima cosa devi dire al django che app hai effettivamente esistito. vai a setting.py e andare a Installed_app e comprendono la vostra applicazione non in questo modo:

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'preview.apps.PreviewConfig', 
] 

allora si deve andare nella directory principale ed eseguire urls.py e aggiungere questo url:

from django.conf.urls import url,include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^$', include ('preview.urls')), 
    url(r'^admin/', admin.site.urls), 
] 

dopo questo dovresti creare un file python nella cartella di anteprima e chiamarlo urls.py.e lì devi definire il tuo url patten per la tua app di anteprima.

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


urlpatterns = [ 
url(r'^$', IndexView.as_view()), 
] 

il passo finale è è necessario definire una vista .in fine di farlo andare a views.py nelle anteprime cartella ed eseguire views.py

from django.views.generic import TemplateView 

class IndexView(TemplateView): 
    template_name = "index.html" 
Problemi correlati