2016-04-13 4 views
0

Я хочу, чтобы location был уникальным в моей базе данных. Если у меня уже есть место, чтобы установить logo, как только я выбираю другой Media объект, чтобы иметь место, как logo, а я хочу, предыдущий Media объекта иметь location набор для None или значения какого-то по умолчанию. Не знаете, как это сделать, или где искать в django документацииУникальное значение столбца в 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) 

ответ

1

Я думаю, что вы должны сделать это вручную, с вашей точки зрения. Каждый раз, когда вы добавляете новый носитель или изменяете носитель, вам нужно проверить, находится ли местоположение, которое вы устанавливаете, уже в таблице или нет. Если он уже находится в таблице, вам необходимо изменить прежнее местоположение носителя и установить его в None. Будьте осторожны при удалении носителя, потому что, если у этого носителя есть место, возможно, вы захотите установить местоположение на другой носитель.

+0

Как я могу начать реализацию этого? Не знаете, как начать эту функцию, как только я добавлю новый медиа-объект – Liondancer

Смежные вопросы