2016-04-13 9 views
0

Ich möchte die location in meiner Datenbank eindeutig sein. Wenn ich bereits ein Standort logo gesetzt haben, sobald ich eine andere Media Objekt Ort wählen als logo sowie zu haben, möchte ich die vorherigen Media Objekt location Satz None oder einen Standardwert haben. Nicht sicher, wie dies zu tun oder wo sie suchen in der Dokumentation djangoEindeutige Spaltenwert in 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) 

Antwort

1

Ich glaube, Sie dies in Ihrer Ansicht manuell zu tun haben. Jedes Mal, wenn Sie ein neues Medium hinzufügen oder ein Medium ändern, müssen Sie prüfen, ob der von Ihnen festgelegte Standort bereits in der Tabelle enthalten ist oder nicht. Wenn es bereits in der Tabelle vorhanden ist, müssen Sie den früheren Medienspeicherort ändern und auf Kein festlegen. Seien Sie vorsichtig, wenn Sie ein Medium löschen. Wenn dieses Medium einen Speicherort hat, sollten Sie den Speicherort möglicherweise auf ein anderes Medium zurücksetzen.

+0

Wie kann ich anfangen, dies zu implementieren? Ich bin mir nicht sicher, wie ich diese Funktion starten soll, sobald ich ein neues Medienobjekt hinzufüge – Liondancer

Verwandte Themen