27 Temmuz 2009, PAZARTESİ
Upload_to ile belirlenen Django FileField zamanı
Eğer kullanıcı bir dosya yükleme joe ise herkesin dosyaları MEDİA_ROOT gitmek zorunda karşı MEDİA_ROOT/joe gider böylece benim yüklenenler kurmak için çalışıyorum. Sorun modelde bu tanımlamak için nasıl bilmiyorum. Şu anda görünen.
class Content(models.Model):
name = models.CharField(max_length=200)
user = models.ForeignKey(User)
file = models.FileField(upload_to='.')
Ne istiyorum yerine '.' olarak upload_to, kullanıcı adı olması gerekiyor.
Django 1.0 olarak kendi işlev upload_to işlemek için tanımlayabilirsiniz ama işlevi olan kullanıcı sayılırım da kaybolacak hiçbir fikrinin olmadığını anlıyorum.
Yardım için teşekkürler!
CEVAP
27 Temmuz 2009, PAZARTESİ
Muhtemelen the documentation, burada mantıklı yapılması kolay bir örnek bu okudum:
def content_file_name(instance, filename):
return '/'.join(['content', instance.user.username, filename])
class Content(models.Model):
name = models.CharField(max_length=200)
user = models.ForeignKey(User)
file = models.FileField(upload_to=content_file_name)
Gördüğünüz gibi, bile sevdim senin de upload_to çağrılabilir bu geçersiz olabilir dosya adı verilen kullanmana gerek yok.
Bunu Paylaş:
Set Django'in varolan bir dosyaya...
Django Filtreleri - ya?...
Nasıl Django model sayısal bir alanın ...
Nasıl paranın bir değeri saklamak gere...
Listedeki ilk maddenin özelliklerinin ...