无法在Django 1.10中显示数据库中的数据?

时间:2017-02-22 07:25:53

标签: html django postgresql

我是django的新手,我无法显示postgres数据库中的数据,我的数据库中有以下数据,

产品数据表

1"测试" " images.jpg" 1

3"样本" " images.jpg" 2

我的代码是,

views.py

from django.shortcuts import render
from products.forms import productsform
from django.http import HttpResponseRedirect
from django.http import HttpResponse
from products.models import products
def productsview(request):
    if request.method == 'POST':
        form = productsform(request.POST)
        if form.is_valid:
            name = request.POST.get('name')
            image = request.POST.get('image')
            code = request.POST.get('code')
            products_obj = products(name=name,image=image,code=code)
            products_obj.save()
            return HttpResponse("Register Successfull")
    else:
        form = productsform()
    return render(request,'products/products_view.html',{'form':form,})

def display(request):
    query_results = products.objects.all()
    return render(request, 'products/myview.html')  

urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.productsview, name='products'),
    url(r'^display', views.display, name='display'),
]

models.py

from __future__ import unicode_literals

from django.db import models

class products(models.Model):
    name = models.CharField(max_length=15,unique=True)
    image = models.ImageField(upload_to = 'pictures')
    code = models.IntegerField()

myview.html

<table>
    <tr>
        <th>Name</th>
        <th>Code</th>
    </tr>
    {% for item in query_results %}
    <tr> 
        <td>{{ item.name }}</td>
        <td>{{ item.code }}</td>
    </tr>
    {% endfor %}
</table>

2 个答案:

答案 0 :(得分:2)

您未将数据从display功能发送到视图。

return render(request, 'products/myview.html', {'query_results': query_results})

答案 1 :(得分:2)

您忘记将模型传递给模板。在您views.py文件中,执行以下操作:

def display(request):
    query_results = products.objects.all()
    return render(request, 'products/myview.html', {'query_results': query_results})