在 Django 中创建了多少个零个或多个、一个或多个、零个或一个?

How zero or many, one or many, zero or one are crated in django?

我有一个 Vacancy,它可以有零个或多个 Benefits,目前在 Vacancy 中使用 ManytToMany,如下所示:

class Vacancy(models.Model):
    benefits = models.ManyToManyField(Benefits)

我的问题是如何定义空缺有可能没有福利?我如何定义它必须至少有一个好处?

这如何应用于 OneToOneForeignKey 关系 in django

您可以将 blank=True 作为参数传递给 ManyToManyField

class Vacancy(models.Model):
    benefits = models.ManyToManyField(Benefits, blank=True)

这样 benefits 就变成可选的了。

您还可以使用.exists()方法检查Vacancy是否有好处。

# benefits exists
if vacancy_object.benefits.exists():
    # do what you want
# benefits not exists
else:
    # do what you want