我有一个Django模型:
class ObservationMedia(models.Model):
observation = models.ForeignKey(Observation)
audio_file = AudioFileField ( upload_to=audio_dir, blank=True, null=True )
photo_file = models.ImageField( upload_to=img_dir, blank=True, null=True )
此媒体表格与媒体相关的表格(观察)相关联。
如何保存AudioFileField
(只是FileField
的超类)和ImageField
,以便文件的名称是观察的主键,例如2465.jpg
?据我所知,我只允许将'instance'和'filename'传递给upload_to
,所以我不知道如何传递这个额外的参数。
答案 0 :(得分:2)
您可以从实例中获取pk。像这样:
def get_audio_path(instance, filename):
return os.path.join(audio_dir+instance.observation.pk+".jpg")
class ObservationMedia(models.Model):
observation = models.ForeignKey(Observation)
audio_file = AudioFileField ( upload_to=get_audio_path, blank=True, null=True )