2016-07-27 5 views
0

ich folgende Modelle Struktur haben:Set `` upload_to`` Funktion eines Feldes in einem Fremdschlüssel

class BaseMovie(models.Model): 
    movie = models.FileField('Movie') 
    width = models.IntegerField('Width') 
    height = models.IntegerField('Height') 
    duration = models.FloatField('Duration') 

class SpecialMovie(models.model): 
    base_movie = models.ForeignKey(BaseMovie, 'Base movie') 
    # some other stuff 

Die Idee dahinter ist, dass ich verwenden BaseMovie in mehreren Modellen beabsichtigen.

Meine Frage ist:

Wie kann ich, im SpecialMovie Modell, an der Stelle, die die besonderen Filme hochgeladen werden?

Ich denke, dass nur die Metadaten in der BaseMovie Klasse zu speichern und den Film Feld in den SpecialMovie mit entsprechender upload_to Funktion nicht zufriedenstellend ist, weil ich den Code kopieren würde, dass die Metadaten in allen Modellen mit einem füllt Fremdschlüssel zu BaseMovie.

+0

Heroku hat einen tollen Artikel zum Hochladen auf Amazon S3: https://devcenter.heroku.com/articles/s3-upload-python – joshlsullivan

Antwort

0

upload_to kann be a callable; Sie könnten es auf eine Funktion setzen, die überprüft, ob die Instanz einen verwandten SpecialMovie hat, und den korrekten Wert entsprechend zurückgeben.

Verwandte Themen