我的Django应用程序没有显示数据库中的内容

时间:2016-09-30 16:49:26

标签: python django

{% extends 'photos/base.html' %}
{% block galleries_active %}active{% endblock %}

{% block body%}
<div class="gallery-container" container-fluid>

    <!--- Galleries--->
    <div class="row">
        <div class="col-sm-12">
            <h3>Text's Gallery</h3>
        </div>
        {% if gallery %}
            {% for gallery in galleries %}
                <div class="col-sm-4 col-lg-2">
                    <div class="thumbnail">
                        <a href="{% url 'photos:details' gallery.id %}">
                            <img src="{{gallery.Gallery_logo}}" class="img-responsive" height="240" width="240">
                        </a>
                        <div class="caption">
                            <h2>{{gallery.Title}}</h2>
                            <h4>{{gallery.Category}}</h4>

                            <!-- View Details-->
                            <a href="{% url 'photos:detail' gallery.id %}" class="btn btn-primary btn-sm" role="button">View Details</a>

                            <!-- Delete Album-->
                            <form action="{% url 'photos:delete_gallery' gallery.id %}" method="post" style="display: inline;">
                                {% csrf_token %}
                                <input type="hidden" name="gallery_id" value="{{gallery.id}}">
                                <button type="submit" class="btn btn-default btn-sm">
                                    <span class="glyphicon glyphicon-trash"></span>
                                </button>
                            </form>

                            <!-- Favorite -->
                            <a href="#" class="btn btn-default btn-sm btn-favorite" role="button">
                                <span class="glyphicon glyphicon-star"></span>
                            </a>
                    </div>
                </div>
                </div>
                {% cycle '' '' '' '' '' '<div class="clearfix visible-lg"></div>' %}
            {% endfor %}
        {% else %}
            <div class="col-sm-12">
                <br>
                <a href="#">
                    <button type="button" class="btn btn-success">
                        <span class="glyphicon glyphicon-plus"></span>&nbsp; Add a Gallery
                    </button>
                </a>
            </div>
    {% endif %}

    </div>

</div>

</div>

{% endblock %}

那是我的索引文件

下面是我的views.py文件

from django.views import generic
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from  django.core.urlresolvers import reverse_lazy
from .models import Gallery

class IndexView(generic.ListView):
    template_name = 'photos/index.html'
    context_object_name = 'all_galleries'

    def get_queryset(self):
        return Gallery.objects.all()

class DetailsView(generic.DetailView):
    model = Gallery
    template_name = 'photos/detail.html'

class GalleryCreate(CreateView):
    model = Gallery
    fields = ['Title','Category','Gallery_logo']

class GalleryUpdate(UpdateView):
    model = Gallery
    fields = ['Title','Category','Gallery_logo']

class GalleryDelete(DeleteView):
    model = Gallery
    success_url = reverse_lazy('photos:index')

和我的models.py

from django.db import models
from django.core.urlresolvers import reverse


class Gallery(models.Model):
    Title = models.CharField(max_length=250)
    Category = models.CharField(max_length=250)
    Gallery_logo = models.CharField(max_length=1000)

    def get_absolute_url(self):
        return reverse('photos:detail', kwargs={'pk': self.pk})

    def __str__(self):
        return self.Title + '_' + self.Gallery_logo


class Picture (models.Model):
    Gallery = models.ForeignKey(Gallery, on_delete=models.CASCADE)
    Title = models.CharField(max_length=250)
    Artist = models.CharField(max_length=250)
    Price = models.CharField(max_length=20)
    interested = models.BooleanField(default=False)

    def __str__(self):
        return self.Title

我正在关注newboston django教程视频编号30,试图将同样的内容视为bucky。如果任何人已经关注该系列并且有一个干净版本的视频30索引页面源代码请帮帮忙。

我将代码修改为适用于在线照相馆商店,管理员将添加按类别分组的图片,供访问者下载。

1 个答案:

答案 0 :(得分:1)

中有context_object_name = 'all_galleries'
class IndexView(generic.ListView):
    template_name = 'photos/index.html'
    context_object_name = 'all_galleries'
    ...

但是,您在模板

中循环galleries
{% for gallery in galleries %}

需要

{% for gallery in all_galleries %}

此外,您在模板中的循环之前有{% if gallery %}这是没有意义的,因为没有gallery变量。您需要检查{% if all_galleries %}

注意#1:你的字段名称在模型中最好是小写的。

注意#2:在IndexView中,您需要提供model,并且可以删除get_queryset(),因为没有自定义查询可以使用过滤器检索数据。所以你需要使用

class IndexView(generic.ListView):
    model = Gallery
    template_name = 'photos/index.html'
    context_object_name = 'all_galleries'