我希望location
在我的数据库中是唯一的。如果我已将位置设置为logo
,那么只要我选择另一个Media
对象的位置为logo
,我希望以前的Media
对象具有location
设置为None
或某个默认值。不确定如何执行此操作或查看django
文档
class Media(models.Model):
LOCATION = (
("video_intro", "Video Intro"),
("logo", "Logo")
)
TYPE = (
("video", "Video"),
("gif", "GIF"),
("picture", "Picture"),
("audio", "Audio")
)
name = models.CharField(max_length=50, blank=True)
location = models.CharField(choices=LOCATION, default=None, max_length=500, null=True)
uploaded = models.DateTimeField(auto_now_add=True)
media_type = models.CharField(max_length=50, choices=TYPE, default=None)
album = models.ForeignKey('Album', blank=True, null=True)
file = models.FileField(upload_to="media/")
url = models.CharField(max_length=2083, blank=True, null=True, default=None)
description = models.TextField(blank=True)
答案 0 :(得分:1)
我认为您必须在视图中手动执行此操作。 每次添加新介质或修改介质时,都需要检查所设置的位置是否已在表中。如果它已经在表中,那么您必须修改以前的媒体位置并将其设置为无。 删除媒体时要小心,因为如果此媒体有位置,您可能需要将该位置设置回另一个媒体。