小编Mar*_*eux的帖子

Django:注释相关字段列表

我有一个公司和用户模型以及相关模型 CompanyRecruiter:

class CompanyRecruiter(models.Model):

    organization = models.ForeignKey(Company, related_name="company_recruiters")
    recruiter = models.ForeignKey(User, related_name="company_recruiters")
Run Code Online (Sandbox Code Playgroud)

我想注释作为招聘人员的用户的用户 ID 列表,以便公司稍后能够对其进行过滤:

Company.objects.annotate(some_stuff=some_other_stuff).values_list("user_ids", flat=True)
# [ [1, 2], [1, 56], [] ]
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用自定义聚合和子查询但没有成功。我用的是postgres。

django django-aggregation django-annotate django-subquery

4
推荐指数
1
解决办法
3363
查看次数

如何在上次重试 Celery 任务时执行一些代码

我正在使用 Django 和 Celery 来运行我的后台任务。我有一个任务可能会因某些 IO 原因而失败:

@shared_task(bind=True)
def mytask(self, someargs):
  try:
    do_some_io_operation()
  except SomeException as e:
    self.retry(max_retries=5)

  # do some other stuff

Run Code Online (Sandbox Code Playgroud)

我只想在最后一次重试失败时执行一些代码并退出函数而不引发异常。是否可以?

django celery background-task

4
推荐指数
1
解决办法
1428
查看次数

Django postgres唯一约束名称生成

当在 django 模型上添加新的唯一约束时,这将自动在 postgres 中为此约束创建一个名称。这个名称是 Postgres 生成的还是 Django 生成的?它是确定性的吗?

例如我使用这个模型

class MyModel(Model):
  field1 = TextField()
  field2 = IntegerField()

  class Meta:
    unique_together = ("field1", "field2")
Run Code Online (Sandbox Code Playgroud)

我得到了约束的名称

select constraint_name
from information_schema.constraint_column_usage
where table_name = 'myapp_mytable'
Run Code Online (Sandbox Code Playgroud)

我得到一个像这样的名字field1_field2_d04755de_uniq

django postgresql

2
推荐指数
1
解决办法
771
查看次数