나는 다음과 같은 방식으로 저장됩니다 업로드를 허용 할 :외래 키를 가져 오는 방법은 무엇입니까?
class Upload(models.Model):
user = models.ForeignKey(User)
category = models.ForeignKey(Category)
file = models.FileField(upload_to='uploads/' + str(category.pk) + '/' + str(user.pk))
class Meta:
unique_together = ('user', 'category')
이러한 방식으로, 각각의 업로드가 먼저 카테고리 ID에 의해 다음 사용자 ID에 의해, 자신의 디렉토리에 샌드 박스 될 것이다. 나는 중복 된 파일 이름에 대해 걱정할 필요가 없으며 디렉터리 구조가 깔끔하고 체계적 일 것입니다.
그러나 ForeignKey
에는 pk
의 인스턴스가 없으므로 위의 코드는 실제로 작동하지 않습니다. 범주 및 사용자를 기반으로 디렉토리에 파일을 저장하는 방법이 있습니까? 또는 Django에서 파일 업로드를 구성하는 데 일반적으로 사용되는 또 다른 전략이 있습니까?
'내가 당신을 복사 한 :) –
@AamirAdnan을 os.path.join' 생각하지 마십시오. 그 비밀은 깊이 숨겨진 비밀이 아닙니다. 나는 당신의 대답으로 정수형 FK를 문자열화할 필요성을 생각 나게했다. –