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

  • audivila

    audivila

    5 HAZİRAN 2009
  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006