我有两种模式:
session.gc_maxlifetime
如何防止创建同一个对象?例如:
我有ModelA的A,B,C实例和两个用户。在ModelB中,我需要这样的关系:
User1只能有一个'链接'到A,一个到B等。 User2相同。他只能将一个“链接”到每个ModelA实例。
每个用户可以在ModelB中有一条与ModelA关联的记录。
E.g。 (User1,A,100),(User2,A,50) 但是,如果我会尝试做这样的事情
class ModelA(models.Model):
name = models.CharField(max_length=256)
class ModelB(models.Model):
user = models.ForeignKey(MyUser)
model_a = models.ForeignKey(ModelA)
points = models.IntegerField(default=0)
我需要从带有user1,A和广告点的db记录中获取,而不是创建另一个类似的模型。
答案 0 :(得分:1)
因此,您希望所有user
和model_a
对都是唯一的。您可以使用unique_together
在模型的元数据中指定此内容。
unique_together = (("driver", "restaurant"),)
这是一个元组元组,必须是唯一的 一起考虑。它在Django管理员中使用,并在 数据库级别(即适当的UNIQUE语句) 包含在CREATE TABLE语句中。
因此,请按以下方式修改模型:
class ModelB(models.Model):
user = models.ForeignKey(MyUser)
model_a = models.ForeignKey(ModelA)
points = models.IntegerField(default=0)
class Meta:
unique_together = (('user', 'model_a'),)