您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Django模板中显示模型数据

5b51 2022/1/14 8:22:02 python 字数 5429 阅读 496 来源 www.jb51.cc/python

我是Django的新手.我正在尝试使用模板在我的索引视图中显示我的Project模型中的数据.我尽力构建这个应用程序类似于民意调查应用程序.我不确定我做错了什么.我使用的是python 2.7和django 1.8.6这是我的网址:from django.conf.urls import url from . import views app_name

概述

我是Django的新手.我正在尝试使用模板在我的索引视图中显示我的Project模型中的数据.我尽力构建这个应用程序类似于民意调查应用程序.我不确定我做错了什么.我使用的是python 2.7和django 1.8.6

这是我的网址:

from django.conf.urls import url

from . import views

app_name = 'project'
urlpatterns = [
    url(r'^$',views.IndexView.as_view(),name='index'),url(r'^(?P
  

这是我的模型:

import datetime
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.contrib.auth.models import User
from django.utils import timezone


@python_2_unicode_compatible  # only if you need to support Python 2
class Contractor(models.Model):
    #project
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=100,blank=True)
    phone = models.CharField(max_length=14,blank=True)
    city = models.CharField(max_length=60,blank=True)
    state = models.CharField(max_length=2,blank=True)
    created_by = models.ForeignKey(User,related_name='Contractor_created_by')
    created_date = models.DateTimeField()
    modified_by = models.ForeignKey(User,related_name='Contractor_modified_by')
    modified_date = models.DateTimeField()

    def __str__(self):
        return self.name

@python_2_unicode_compatible  # only if you need to support Python 2
class Project(models.Model):
    name = models.CharField(max_length=50)
    jobNumber = models.CharField(max_length=8)
    shopOut = models.DateTimeField(null=True)
    shopIn = models.DateTimeField(null=True)
    delivery = models.DateTimeField(null=True)
    job1 = models.CharField(max_length=50,null=True)
    job2 = models.CharField(max_length=50,null=True)
    job3 = models.CharField(max_length=50,null=True)
    contractor = models.ForeignKey(Contractor,on_delete=models.CASCADE,default=101)
    created_by = models.ForeignKey(User,related_name='Project_created_by')
    created_date = models.DateTimeField(auto_Now_add=True)
    modified_by = models.ForeignKey(User,related_name='Project_modified_by')
    modified_date = models.DateTimeField(auto_Now=True)
    def __str__(self):
        return self.name
    def save(self,*args,**kwargs):
        if not self.id:
            self.created_by = User.objects.get(id=1)
            self.modified_by = User.objects.get(id=1)
            super(Project,self).save(*args,**kwargs)
            year = datetime.datetime.Now().year
            self.jobNumber = '{}{:04d}'.format(year,self.id)
        self.modified_by = User.objects.get(id=1)
        super(Project,**kwargs)

这是我的观点:

from django.shortcuts import get_object_or_404,render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic
from django.utils import timezone

from .models import Project

# Create your views here.
class IndexView(generic.ListView):
    model = Project
    template_name = 'project/index.html'

    def get_queryset(self):
        return Project.objects

class DetailView(generic.DetailView):
    model = Project

这是我的模板:

{% load staticfiles %}

  

当我进入页面时,我得到一个h1项目,一个空的ul,以及一行显示’end of list’

在模板中,您不需要执行project.get_queryset,为您调用get_queryset方法,并将值作为object_list和< objectname> _list以及其他参数传递给模板.在您的情况下,对象是Project,因此应该有一个project_list变量以及object_list.

你可以做:

{% for project in project_list %}
    
  

要么:

{% for project in object_list %}
    
  

你可以在这里阅读更多相关信息:https://docs.djangoproject.com/en/1.9/ref/class-based-views/generic-display/#listview

总结

以上是编程之家为你收集整理的如何在Django模板中显示模型数据全部内容,希望文章能够帮你解决如何在Django模板中显示模型数据所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶