সমষ্টিগত
সমষ্টি একটি সম্পূর্ণ ক্যোরিসেটের উপরে ফলাফল (সংক্ষিপ্ত) মান দেয়। সার্বিকভাবে রো-সেট থেকে একক মান পাওয়ার জন্য রোউসেটের ওপরে পরিচালনা করুন ((উদাহরণস্বরূপ, রোউসেটের সমস্ত দামের যোগফল)। সমষ্টি সমগ্র ক্যোরিসেটে প্রয়োগ করা হয় এবং এটি একটি সম্পূর্ণ ক্যোরিসেটের ফলাফল (সংক্ষিপ্তসার) মান উত্পন্ন করে।
মডেল:
class Books(models.Model):
name = models.CharField(max_length=100)
pages = models.IntegerField()
price = models.DecimalField(max_digits=5, decimal_places=3)
আবরণের ভেতরে:
>>> Books.objects.all().aggregate(Avg('price'))
# Above code will give the Average of the price Column
>>> {'price__avg': 34.35}
অ্যানোটেট
অ্যানোটেট একটি ক্যোরিসেটে প্রতিটি বস্তুর জন্য একটি স্বাধীন সংক্ষিপ্তসার তৈরি করে (
মডেল:
class Video(models.Model):
name = models.CharField(max_length=52, verbose_name='Name')
video = models.FileField(upload_to=document_path, verbose_name='Upload
video')
created_by = models.ForeignKey(User, verbose_name='Created by',
related_name="create_%(class)s")
user_likes = models.ManyToManyField(UserProfile, null=True,
blank=True, help_text='User can like once',
verbose_name='Like by')
দেখুন:
videos = Video.objects.values('id', 'name','video').annotate(Count('user_likes',distinct=True)
দেখুন এটি প্রতিটি ভিডিওর জন্য পছন্দ গণনা করা হবে
.annotate()
একা কিউসে ডিবি আঘাত করে না, তবে কলিংq[0].num_authors
করে? আমি ধরে নিই যেaggregate
এটি একটি টার্মিনাল ধারা হিসাবে সর্বদা ডিবিতে আঘাত করবে?