Есть ли способ объединить несвязанные модели django?

У меня есть около 20 приложений django в одном проекте с аналогичными собственными моделями, каждая из которых представляет собой ветвь цепочки, которые одновременно будут выполнять операции CRUD?

во-первых, хороший ли это дизайн? Не будет ли он слишком большим для любой онлайновой базы данных?

вторая часть - как объединить все модели для представления данных?

модели работают примерно так


class App1(models.Model):
    serial = models.IntegerField()
    date_entry = models.DateField(default=datetime.date.today)
    company = models.ForeignKey(to=Company, on_delete=models.DO_NOTHING)
    product = models.ForeignKey(to=Product, on_delete=models.DO_NOTHING)
    weight = models.DecimalField(max_digits=10, decimal_places=2)
    country = models.ForeignKey(to=Country, on_delete=models.DO_NOTHING)
    cert_no = models.CharField(max_length=40)
    custom_cert_date = models.DateField()

модель 2


class App2(models.Model):
    serial = models.IntegerField()
    date_entry = models.DateField(default=datetime.date.today)
    company = models.ForeignKey(to=Company, on_delete=models.DO_NOTHING)
    product = models.ForeignKey(to=Product, on_delete=models.DO_NOTHING)
    weight = models.DecimalField(max_digits=10, decimal_places=2)
    country = models.ForeignKey(to=Country, on_delete=models.DO_NOTHING)
    custom_cert_no = models.CharField(max_length=40)
    custom_cert_date = models.DateField()
    

и так далее для каждого приложения

Я хочу объединить веса всех моделей, сгруппированных по стране, дате_ввода и продукту. по одной группе за раз?

Я пробовал это, но он просто объединяет их, не добавляет веса, однако столбцы одинаковые?

app1_data = App1.objects.filter(date_entry__gte=year1, date_entry__lte=year2).values('product__type').annotate(
        Sum('weight')).order_by('product__type')


app2_data = App2.objects.filter(date_entry__gte=year1, date_entry__lte=year2).values('product__type').annotate(
        Sum('weight')).order_by('product__type')

combined_data = list(chain(app1_data, app2_data))

поможет ли pandas?

любая помощь будет оценена по достоинству

Вернуться на верх