Django需要借助两个表中的相互前键字段,根据另一个模型中的数据自动填充一个模型中的字段

时间:2019-12-09 16:05:30

标签: django django-models django-forms django-views

我正在尝试在Django中创建一个项目管理应用程序 当用户输入要在一种模型中完成的工作量时,在另一种模型中,他列出了工作进度。

我有两个BOQ模型和DPR boq模型

choicestype=(('start','start'),('finish','finish'))

class boqmodel(models.Model):
    code = models.IntegerField()
    building = models.ForeignKey(building, on_delete=models.SET_NULL, null=True)
    level = models.ForeignKey(level, on_delete=models.SET_NULL, null=True)
    activity = models.ForeignKey(activity, on_delete=models.SET_NULL, null=True)
    subactivity = models.ForeignKey(sub_activity, on_delete=models.SET_NULL, null=True)
    duration = models.IntegerField()
    linkactivity = models.CharField(max_length=300,null=True,blank=True)
    linktype = models.CharField(choices=choicestype,max_length=300,null=True,blank=True)
    linkduration = models.IntegerField(default=0)
    plannedstart = models.DateField(null=True,blank=True)
    plannedfinish = models.DateField(null=True,blank=True)
    actualstart = models.DateField(null=True,blank=True)
    actualfinish = models.DateField(null=True,blank=True)

DPR

class dprmodel(models.Model):
    Date=models.DateField()
    Contractor=models.CharField(max_length=300)
    Building = models.ForeignKey(building, on_delete=models.SET_NULL, null=True)
    Level = models.ForeignKey(level, on_delete=models.SET_NULL, null=True)
    Activity = models.ForeignKey(activity, on_delete=models.SET_NULL, null=True)
    Subactivity = models.ForeignKey(sub_activity, on_delete=models.SET_NULL, null=True)
    Status=models.CharField(choices=choicestype,max_length=300)
    Labor=models.IntegerField()

两个模型都具有Building,Level,Activity,Sub Activity作为公共字段。 我在BOQ中的条目

code=1
building=A-1
Level=L-1
Activity=Activity-1
Subactivity-Subactivity-1
duration=2
linkactivity=null
linktype=null
linkduration=null
planned start=01-01-2019(as linkactivity=null)
plannedfinish=03-01-2019(planned start+duration)

我的DPR条目

Date :10-1-2019
contractor :A
building=A-1
Level=L-1
Activity=Activity-A
Subactivity=Subactivity-A
Status =Start
Labor=2

我需要在boqmodel中填充“实际开始日期”,以使boqmodel.building = dprmodel.building和boqmodel.level = dprmodel.level和boqmodel.activity = dprmodel.activity和boqmodel.subactivity = dprmodel.subactivity和dpr。状态=开始。如果存在上述条件,那么我想通过连接建筑物,级别,活动和子活动在两个模型中创建一个新字段。然后我可以使用新创建的字段来加入两个模型。任何帮助将不胜感激。

0 个答案:

没有答案
相关问题