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

yipeiwu_com5年前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 vtk读取并显示dicom文件示例

Python vtk读取并显示dicom文件示例

因为做项目的原因,所以接触到了医学图像dicom文件。vtk刚开始看,这里仅仅只是其最简单的读取显示功能。此处用到了vtk库,可自行百度安装方法。 下面附上代码: from vtk...

python实现多进程按序号批量修改文件名的方法示例

本文实例讲述了python实现多进程按序号批量修改文件名的方法。分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号...

django模板结构优化的方法

模版结构优化 引入模版 有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函...

pytorch 使用单个GPU与多个GPU进行训练与测试的方法

如下所示: device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")#第一行代码 model.t...

Python编程入门的一些基本知识

Python编程入门的一些基本知识

 Python与Perl,C和Java语言等有许多相似之处。不过,也有语言之间有一些明确的区别。本章的目的是让你迅速学习Python的语法。 第一个Python程序: 交互模式...