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

  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • MW Technology

    MW Technolog

    28 EKİM 2009
  • Pituvision

    Pituvision

    11 Mart 2006