SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009