动态计数模型字段?

时间:2019-10-21 15:18:23

标签: django django-models django-forms django-templates django-views

是否可以在Django中动态计算模型字段。我尝试使用替代保存模型,但这不是动态的:

class MyAdminView(admin.ModelAdmin):
   def save_model(self, request, obj, form, change):
       super(MyAdminView, self).save_model(request, obj, form, change)

Models.py

class JobRequest(models.Model):
    User=models.ForeignKey(user, on_delete = model.CASCADE)
    organization=models.CharField(max_length =150)
    email=models.EmailField(max_length =150)
    country= models.CharField(max_length =150)
    state=models.CharField(max_length =150)
    offer=models.BooleanField(default =True)
    active = models.IntegerField(max_length =150)
    present=models.IntegerField(max_length =150)

我正在建立一个用户申请职位的网站。我希望现在字段计算用户提交工作请求的次数,并希望活动字段计算用户获得的报价的数量。

1 个答案:

答案 0 :(得分:1)

您想要的内容不应该是JobRequest模型上的字段,因为它可以很容易地从数据库中检索到。理想情况下,这应该是您的User模型上的属性,因为它属于用户。但您也可以将其设为JobRequest实例的属性:

@property
def present(self):
    return self.__class__.objects.filter(user=self.user).count()

@property
def active(self):
    return self.__class__.objects.filter(user=self.user, offer=True).count()