'''orderMain'''
class OrderMain(models.Model):
orderId = models.UUIDField(primary_key=True, max_length=30)#sum(OrderDetail.amount)
sumAmount = models.DecimalField(max_digits=13,decimal_places=3,null=True) #sum(orderDetail.amount)
class Meta:
db_table = 'orderMain'
def __str__(self):
return self.orderId
def save(self, *args, **kwargs):
super(OrderMain, self).save(*args, **kwargs)
'''orderDetail'''
class OrderDetail(models.Model):
orderId = models.ForeignKey(OrderMain,to_field='orderId',db_column='orderId',on_delete=models.CASCADE)
amount = models.DecimalField(max_digits=8,decimal_places=2)
class Meta:
db_table = 'orderDetail'
def __str__(self):
return ''
class OrderDetailInLine(admin.TabularInline):
model = OrderDetail
extra = 1
@admin.register(OrderMain)
class OrderMainAdmin(admin.ModelAdmin):
inlines = [OrderDetailInLine,]
list_display = ['orderId','sumAmount']
readonly_fields = ['orderId','sumAmount']
fields = ('orderId', 'sumAmount')
#Questions: Can I calc orderMain.sumAmount = sum(orderDetail.amount) before objects save to db?