2016-04-13 23 views
0

location veritabanımın benzersiz olmasını istiyorum. Zaten ben de logo olarak konuma sahip başka Media nesneyi seçmek gibi bir konum en kısa sürede, logo ayarlı varsa, ben önceki Media nesne location None için seti veya bazı varsayılan değere sahip istiyoruz. ya da nereye ben size görünümünde elle yapmak zorunda düşünüyorum django belgelerindedjango'daki benzersiz sütun değeri

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) 

cevap

1

bakmaya bunun nasıl emin değilim. Her yeni ortam eklediğinizde veya bir ortamı değiştirdiğinizde, ayarladığınız konumun zaten tabloda olup olmadığını kontrol etmeniz gerekir. Tabloda zaten varsa, eski medya konumunu değiştirmek ve bunu Yok olarak ayarlamanız gerekir. Bir medyayı silerken dikkatli olun, çünkü bu ortamın bir konumu varsa, konumu başka bir ortama geri yüklemek isteyebilirsiniz.

+0

Bunu nasıl uygulamaya başlayabilirim? Yeni bir medya nesnesi eklediğimde bu işlevi nasıl başlayacağımı bilmiyorum – Liondancer