我有团体和人,我希望在一个团体中,不能有一个同名的人......但在不同的团体中,这很好......非常简单。我的代码:
class Group(model.Model):
name = models.CharField() #irrelevant
class Person(models.Model):
name = models.CharField(max_length=255, unique=False)
related_group = models.ForeignKey(Group)
def clean(self):
if self.related_group:
for pip in self.related_group.person_set.all():
if pip.name == self.name:
raise ValidationError("Name already exists in this Group")
我收到此错误:
RelatedObjectDoesNotExist at /create/person/ # the url of creating the object
人没有related_group。
我想问题是我需要找到一种方法来引用该组(在表单中) 感谢。
答案 0 :(得分:2)
您应该可以使用unique_together
,然后您不需要使用clean
方法进行检查。
class Person(models.Model):
name = models.CharField(max_length=255, unique=False)
related_group = models.ForeignKey(BreadcrumbGroup)
class Meta:
unique together = [
('name', 'related_group'),
]