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

  • Pepsi

    Pepsi

    1 Kasım 2005
  • TechShowsYou

    TechShowsYou

    3 Mart 2011
  • Top10Series

    Top10Series

    26 Kasım 2008