Сопоставление данных из двух функций в контексте django?
Я борюсь с сопоставлением контекстов в моем проекте django. Я хочу вставить кверисет .annotate(), идеально в просто переменную set.
Я знаю, что это звучит странно, но это лучшее, как я могу это описать.
Я попробовал использовать .filter(), так как это имеет логический смысл для меня, но это не совсем работает.
my views.py
from django.shortcuts import render
from django.db.models import Count
from django.db.models import Sum
from .models import Offer_general
from .models import Offer_details
import datetime
# Create your views here.
def offer_general_list(request):
#queryset = Offer_general.objects.filter(status=1).order_by('-id')
context = {}
context["data"] = Offer_general.objects.filter(status=1).order_by('-id')#stuff from Offer_general
context["test"] = Offer_details.objects.values('fk_offer_general_id').annotate(sum=Sum('fk_offer_general_id'))
return render(request, "index_offers.html", context)
def offer_general_details(request):
context = {}
context["data"] = Offer_details.objects.all()
return render(request, "offer_detail.html", context)
models.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models import Count
STATUS = (
(0,"Inactive"),
(1,"Active")
)
class Offer_type(models.Model):
type = models.TextField()
class Meta:
ordering = ['-type']
def __str__(self):
return self.type
class Offer_general(models.Model):
offer_name = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True)
status = models.IntegerField(choices=STATUS, default=0)
type = models.ForeignKey(Offer_type, on_delete= models.PROTECT)
class Meta:
ordering = ['-id']
def __str__(self):
return self.offer_name
class Offer_localization(models.Model):
localization = models.TextField()
class Meta:
ordering = ['-localization']
def __str__(self):
return self.localization
class Offer_details(models.Model):
slug = models.SlugField(max_length=200, unique=True)
localization = models.ForeignKey(Offer_localization, on_delete= models.PROTECT, default="Opole")
fk_offer_general_id = models.ForeignKey(Offer_general, on_delete= models.PROTECT)
updated_on = models.DateTimeField(auto_now= True)
content = models.TextField()
requirements = models.TextField()
created_on = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(choices=STATUS, default=0)
class Meta:
ordering = ['-id']
def __str__(self):
return self.slug
TL;DR, я хочу, чтобы sum(), возвращаемая в context["test"], была красиво зацикливаемой, с id равным fk_offer_general_id.
Проблема показана на следующем изображении: (У меня нет репутации для размещения изображения :() https://ibb.co/XtpkKpC