class Service(models.Model)
name = models.CharField("service name", max_length = 20, unique = True)
class Newclass(models.Model):
service = models.ForeignKey(Services)
user1 = models.ForeignKey(User)
基本上我想要的是: 对于每个服务,我可以拥有不同的user1,但任何服务都没有重复的user1。 示例
service = 'some' user1 = 'amit'
service = 'some' user1 = 'laspal'
service = 'some1' user1 = 'amit'
那么如何避免这种情况:
service = 'some' user1 = 'amit'
service = 'some' user1 = 'amit'
我应该在将user1添加到newclass时检查,或者是否有一些我错过的字段,我可以使用Fk()。
感谢。
答案 0 :(得分:3)
如果您的意思是您不希望2 Newclass
个模型与同一服务和user1一起存在,则应使用:
class Newclass(models.Model):
service = models.ForeignKey(Services)
user1 = models.ForeignKey(User)
class Meta:
unique_together = (('service', 'user1'),)
答案 1 :(得分:2)
您想要unique_together
:
class Newclass(models.Model):
service = models.ForeignKey(Services)
user1 = models.ForeignKey(User)
class Meta:
unique_together = ('service', 'user1')
unique_together
做了什么(来自the documentation):
这是一系列字段列表,这些字段在一起考虑时必须是唯一的。它在Django管理员中使用,并在数据库级别强制执行(即,
UNIQUE
语句中包含相应的CREATE TABLE
语句。