1

我有一个 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,所以我不知道如何传递这个额外的参数。

4

1 回答 1

3

您可以从实例中获取 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 )
于 2013-05-15T07:39:11.010 回答