2015-04-05 24 views
0

我無法讓主頁顯示來自HomePage和IconBlurb模型的數據。我已經被困在這個問題兩天了,無法想象它。請幫幫我。謝謝。如何讓兩個模型同時出現在我的Django主頁上?

這是我的models.py

class HomePage(models.Model): 
    heading = models.CharField(max_length=200, 
    help_text="The heading under the icon blurbs") 
    subheading = models.CharField(max_length=200, 
    help_text="The subheading just below the heading") 
    introduction = models.TextField(help_text="首頁的歡迎文字。") 
    introLink = models.URLField(max_length=200, blank=True) 

    class Meta: 
     verbose_name= _("Home page") 
     verbose_name_plural = _("Home pages") 

這是我的views.py

from django.shortcuts import get_object_or_404, render 
from homepage.models import HomePage, IconBlurb 

def index(request): 
    homepage = get_object_or_404(HomePage) 
    return render(request, 'homepage/index.html', {'homepage':homepage}) 

def blurb(request): 
    latest_iconblurb = IconBlurb.objects.all() 
    context = {'latest_iconblurb': latest_iconblurb} 
    return render(request, 'homepage/blurb.html', context) 

這是我的urls.py

from django.conf.urls import patterns, url 

urlpatterns = patterns('', 
    url(r'^$', views.index, name='index'), 
    ) 

這是我的index.html

{% extends "base.html" %} 
{% block all_content %} 
<div class="jumbotron"> 
    <div class="container"> 
     <h1>{{ homepage.heading }}</h1> 
     <p>{{ homepage.introduction }}</p> 
     <p><a class="btn btn-primary" href="/courses">開始學習</a></p> 
    </div> 
</div> 
<div class="container"> 
    <div class="row"> 
     {% block blurb %}{% endblock %} 
    </div> 
</div> 
{% endblock %} 

這是我blurb.html

{% extends "homepage/index.html" %} 

{% block blurb %} 
{% if latest_iconblurb %} 
{% for blurb in latest_iconblurb %} 
<div class="col-md-4"> 
    <h2>{{ blurb.title }}</h2> 
    <p>{{ blurb.content }}</p> 
</div> 
{% endfor %} 
{% endif %} 
{% endblock %} 

回答

1

這很簡單。將兩個功能代碼寫入單個功能。

def index(request): 
    homepage = get_object_or_404(HomePage) 
    latest_iconblurb = IconBlurb.objects.all() 
    context = {'latest_iconblurb': latest_iconblurb; 'homepage':homepage} 
    return render(request, 'homepage/blurb.html', context) 
相關問題