我在model.py中具有以下模型
class Jobs(models.Model):
JobNumber=models.CharField()
CustomerName = models.CharField()
class JobTime(models.Model):
JobNumber = models.ForeignKey(Jobs, on_delete=models.PROTECT)
WorkHrs = models.FloatField()
LabourCost = models.FloatField()
class JobMaterial(models.Model):
JobNumber = models.ForeignKey(Jobs, on_delete=models.PROTECT)
MaterialCost = models.FloatField()
我想为Jobs模型中的所有JobNumbers生成一个具有JobNumber,CustomerName,LabourCost,MaterialCost的查询集。请帮助,我使用Django版本:3.0.6和Python版本:3.8.2
老实说,我认为您应该修改您的模型,以便外键位于Jobs类中。作业应具有JobTime和JobMaterial,而不是相反。然后,您可以执行以下操作:
class Jobs(models.Model):
JobNumber=models.CharField()
CustomerName = models.CharField()
job_time = models.ForeignKey(JobTime, on_delete=models.PROTECT)
job_material = models.ForeignKey(JobMaterial, on_delete=models.PROTECT)
Jobs.objects.all().select_related('job_time', 'job_material')
如果您希望job_material
成为Jobs上的一对多字段,那么您将使用prefetch_related
而不是select_related
。
希望有帮助,祝您编程愉快!