Developer 2024 🎇限时优惠进行中,现在购买立即享受

现在购买

请教diango-admin中model设计思想

avatar幽冥之海
1月17日713次阅读

大神您好,我现在想要了解一下django-admin中对于model规划的部分,首先说一下我的设想: 在后台使用同一张数据表注册两个ModelAdmin页面,用于对同一个数据表中的数据,管理页面分开,以采购订单子表中的采购明细和采购明细的质量信息表管理为例:

1、采购订单子表内联到订单主表中,显示实际采购的实际物品

预先设想的概念图大概是这样: image.png

基于django的官方文档,我使用代理模型进行创建

#订单表
class order(models.Model):
    code = models.CharField(verbose_name='订单编码',max_length=50,default='')
    createDate = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
    class Meta:
        verbose_name = '订单信息'
        verbose_name_plural = verbose_name

#订单明细
class orderItem(models.Model):
    owner = models.ForeignKey(verbose_name='所属订单',to=order,on_delete=models.CASCADE)
    name = models.CharField(verbose_name='采购物品名称',max_length=50,default='')
    #...其它相关属性
    class Meta:
        verbose_name = '订单明细'
        verbose_name_plural = verbose_name

#代理订单子表
class Proxy2orderItem(models.Model):
    class Meta:
        proxy = True
        verbose_name = '采购物品名称'
        verbose_name_plural = verbose_name

#物料的质量信息
class quality(models.Model):
    owner = models.ForeignKey(verbose_name='所属商品',to=Proxy2orderItem,on_delete=models.CASCADE)
    info = models.CharField(verbose_name='质量说明',max_length=50,default='')
    class Meta:
        verbose_name = '物品质量信息'
        verbose_name_plural = verbose_name

通过以上操作,我可以在后台创建两个管理页面:orderItemAdmin以及Proxy2orderItem

这样做的目的是为了让采购人员进行订单创建,让质量人员进行质检。

但是现在面临一个问题就是在做报表统计的时候,如何能够关联订单主档、订单明细档、订单明细档的质量信息,汇总出一份数据? 还有,以上我的model设计是不是一个合理的设计呢? 以上,还请赐教,顺颂商祺~

发布评论
登录后发表内容
4个评论