1
我在我的路径(多对多)表中获得重复,并希望它只包含独特的项目。Django多对多避免重复
models.py
class Image(models.Model):
path = models.CharField(max_length=128)
class User(models.Model):
username = models.CharField(max_length=32)
created = models.DateTimeField()
images = models.ManyToManyField(Image, through='ImageUser')
class ImageUser(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
image = models.ForeignKey(Image, on_delete=models.CASCADE)
但是,我似乎能够用相同的路径创建一个以上的图像。我想要一个独特的图像路径指向多个用户,而不会在Image表中有重复的图像。
u = User.objects.create(username='AndyApple')
i = Image(path='img/andyapple.jpg')
i.save()
ui = ImageUser(user=u, image=i)
ui.save()
u2 = User.objects.create(username='BettyBanana')
ui = ImageUser(user=u2, image=i)
这似乎在图像表中为同一图像创建两行。文档建议这不应该发生ManyToManyField.through
谢谢!