django - 在 Django 中,在多对多关系中至少强制执行一个值?

标签 django orm

我在 Django(1.4) 模型中有一个多对多关系。

class UserProfile(models.Model):
    foos = models.ManyToManyField(Foo)

我想强制每个用户(配置文件)至少有一个 Foo。 Foos 可以有零个或多个用户(配置文件)。

我希望在模型和管理员级别强制执行此操作,但仅在管理员级别执行它就足够了。

如果我理解正确的话,Django-speak 中的“许多”是零个或多个。

我想要一个 ManyToOneOrMore 关系。我怎样才能做到这一点?

谢谢,

克里斯。

最佳答案

您不能像@Greg 详细信息那样在模型级别强制执行此操作,但您可以通过简单地将字段设为必填字段来在表单上强制执行此操作。这不会阻止任何具有 shell 级别访问权限的人手动创建没有 foo 的 UserProfile,但它会强制任何人使用基于浏览器的表单创建方法。

关于django - 在 Django 中,在多对多关系中至少强制执行一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10480322/

相关文章:

mongodb - FOSUserBundle 使用 MongoDB 配置验证而不是 ORM

django - syncdb/migrate with djangae on google app engine

Django Rest Framework 序列化器和 View

python - 在 Django 中检索周一到周五的行?

django - 如何转义 Prop 的单引号?

indexing - 如何在 GUI 中获取 Hibernate Lucene 索引创建的统计信息?

使用 Django 的 Ajax View

JPA:持久外键约束的问题

mysql - 数据库设计——多个外键

java - 在 jsp 中显示 hibernate 查询结果的最佳方式