मैं अपने अपलोड सेट अप करने की कोशिश कर रहा हूं ताकि यदि उपयोगकर्ता जो फ़ाइल अपलोड करता है तो यह MEDIA_ROOT/जो पर जाता है क्योंकि हर किसी की फाइलें MEDIA_ROOT पर जाती हैं। समस्या यह है कि मुझे नहीं पता कि मॉडल में इसे कैसे परिभाषित किया जाए। यहां बताया गया है कि यह वर्तमान में कैसा दिखता है:रनटाइम पर निर्धारित अपलोड_to के साथ Django FileField
class Content(models.Model):
name = models.CharField(max_length=200)
user = models.ForeignKey(User)
file = models.FileField(upload_to='.')
तो मैं चाहता हूं कि '।' upload_to के रूप में, यह उपयोगकर्ता का नाम हो।
मैं समझता हूं कि Django 1.0 के रूप में आप upload_to को संभालने के लिए अपना स्वयं का फ़ंक्शन परिभाषित कर सकते हैं लेकिन उस फ़ंक्शन को पता नहीं है कि उपयोगकर्ता कौन होगा या तो मैं थोड़ा खो गया हूं।
सहायता के लिए धन्यवाद! आप रद्द कर सकते थे कि -
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)
आप देख सकते हैं, तो आप भी फ़ाइल नाम दिया उपयोग करने की आवश्यकता नहीं है:
हाँ, शायद यह दस्तावेज़ों में से संबंधित है - यह आईआरसी – SmileyChris
पर एक उचित सवाल है क्या यह मॉडलफॉर्म के साथ काम करता है? मैं देख सकता हूं कि उस उदाहरण में क्लास मॉडल के सभी गुण हैं, लेकिन कोई मान नहीं है (केवल फ़ील्ड नाम का एक स्ट्र)। टेम्पलेट में, उपयोगकर्ता छिपा हुआ है। मुझे एक प्रश्न जमा करना पड़ सकता है, मैं घंटों तक इसे गुगल रहा हूं। – mgag
हां यह काम करता है, और हाँ आपको एक नया प्रश्न पूछना चाहिए (या #django irc पर सहायता मांगना) – SmileyChris