Python 如何为我的模型创建一个计算ArrayField列中字符串对象总数的函数?

Python 如何为我的模型创建一个计算ArrayField列中字符串对象总数的函数?,python,django,django-rest-framework,Python,Django,Django Rest Framework,试图在我的模型中创建一个名为stock\u count的列,该列查找我的ArrayField(),也称为stock\u list中的字符串对象总数。这是我的功能 def total_stocks_calc(self): self.stock_count = Bucket.objects.aggregate(Sum('stock_list', distinct=True)) self.save() 然而,它似乎没有做任何事情,没有计算,在我的模型、管理页

试图在我的模型中创建一个名为
stock\u count
的列,该列查找我的
ArrayField()
,也称为
stock\u list
中的字符串对象总数。这是我的功能

    def total_stocks_calc(self):
        self.stock_count = Bucket.objects.aggregate(Sum('stock_list', distinct=True))
        self.save()

然而,它似乎没有做任何事情,没有计算,在我的模型、管理页面和DRF界面中留下空白字段

编辑:用新的实现更新帖子

这是我的模型

class Bucket(models.Model):


    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='buckets')
    users = models.ManyToManyField(settings.AUTH_USER_MODEL)
    category = models.CharField(max_length=30, choices=category_options)
    name = models.CharField(max_length=35)
    created = models.DateTimeField(default=timezone.now)
    slug = models.SlugField(unique=True, blank=True) 
    stock_count = models.IntegerField(blank=True, null=True)
    stock_list = ArrayField(models.CharField(max_length=6,null=True),size=30,null=True)
    about = models.CharField(max_length=75)

    objects = models.Manager()
    bucketobjects = BucketObjects()

    class Meta:
        ordering = ('-created',)

    def total_stocks_calc(self):
        self.stock_count = Bucket.objects.annotate(stock_count=F('stock_list__len'))
        self.save()


    def __unicode__(self):
        return self.stock_list

想知道在
ArrayField()
中计算项目总数的正确方法,请提前感谢。

ArrayField
中提供了
len
查找字段,您可以通过该字段获得计数


感谢您的评论,我测试了您的代码片段,但我正在尝试让它正常工作,但我无法让它开始计算
阵列字段中有多少项。我在OG帖子中添加了一个新的编辑,向您展示了我是如何实现的。
from django.db.models import F    
Bucket.objects.annotate(stock_count=F('stock_list__len'))