我有一个公司和用户模型以及相关模型 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 和 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 模型上添加新的唯一约束时,这将自动在 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