django一对多模型以及如何在前端实现详解

yipeiwu_com6年前Python基础

models.py

class xm(models.Model):
  xmID=models.AutoField(primary_key=True)
  xmTitle=models.CharField('项目标题',max_length=50)
  xmDate=models.DateField('时间',auto_now_add=True)
 

  class Meta:
    db_table="std_web_xm"
    verbose_name="项目概况"
    verbose_name_plural=verbose_name

  def __unicode__(self):
    return self.title
  def __str__(self):
    #强制转换为int类型
    return str(self.xmID)#为了使在xadmin中成功显示为xmID

class xmProgress(models.Model):
  xmProgress_ID=models.AutoField(primary_key=True)
  xmProgress = models.CharField('项目进展', max_length=50, blank=True)
  xmDesc = models.CharField('详情', max_length=50, blank=True)
  #关联主键xmID ,级联删除
  cid=models.ForeignKey("xm",on_delete=models.CASCADE)
  xmProgress_Date=models.DateField('更新时间',auto_now_add=True)
class Meta:
    db_table="std_web_xmProgress"
    verbose_name="项目详情"
    verbose_name_plural=verbose_name

  def __unicode__(self):
    return self.title

注册到adminx.py中

class XmAdmin(object):
  list_display = ['xmTitle','xmDate']
  #style_fields = {"xmContent": "ueditor"}

class XmProgressAdmin(object):
  list_display=['cid','xmProgress','xmProgress_Date','xmDesc']

xadmin.site.register(xm,XmAdmin)
xadmin.site.register(xmProgress,XmProgressAdmin)

views.py

def xm_detail(request,xmID):
  xm_detail=xm.objects.get(pk=xmID)
  xmProgress_detail=xmProgress.objects.filter(cid=xm_detail)
  return render(request,'xmgk/xmgk_detail.html',{'xmProgress_detail':xmProgress_detail,'xm_detail':xm_detail})

前端代码

{% for line in xmProgress_detail %}
<tr>
 <td>{{ line.xmProgress_Date|date:"Y-m-d" }}</td>
 <td>{{ line.xmProgress }}</td>
 <td>{{ line.xmDesc }}</td>
</tr>

{% endfor %}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

零基础使用Python读写处理Excel表格的方法

零基础使用Python读写处理Excel表格的方法

引 由于需要解决大批量Excel处理的事情,与其手工操作还不如写个简单的代码来处理,大致选了一下感觉还是Python最容易操作。 安装库Python环境 首先当然是配环境,不过选Pyth...

Python 变量类型详解

Python 变量类型详解

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些...

使用pandas读取csv文件的指定列方法

根据教程实现了读取csv文件前面的几行数据,一下就想到了是不是可以实现前面几列的数据。经过多番尝试总算试出来了一种方法。 之所以想实现读取前面的几列是因为我手头的一个csv文件恰好有后面...

在django admin中添加自定义视图的例子

django admin提供了完善的用户管理和数据模型管理,方便实用。研究了一下在admin里面添加自己的页面。 在admin.py里继承django.contrib.admin.Mod...

Python datetime和unix时间戳之间相互转换的讲解

python datetime和unix时间戳之间相互转换 1、代码: import time import datetime # 1、datetime转unix时间戳...