2014-10-26 6 views
8

मैं फ़ाइलफ़ाइल का उपयोग कर फ़ाइल संग्रहीत करने का प्रयास कर रहा हूं, लेकिन फ़ाइल के गंतव्य का पथ 100 वर्णों से बड़ा है। मैं अनुमत वर्णों की संख्या कैसे बढ़ा सकता हूं? मैंने max_length = 255 के साथ प्रयास किया है लेकिन काम नहीं किया है।Django - फ़ाइलफ़िल्फ़ की लंबाई बढ़ाएं

धन्यवाद।

संपादित करें: जोड़ा गया मॉडल

class File(models.Model): 
    Record = models.ForeignKey(Records) 
    Title = models.CharField(max_length=255, blank=False) 
    File = models.FileField(upload_to='files/Records', blank=False) 
    Upload_date = models.DateTimeField(auto_now_add=True) 

    def __unicode__(self): 
     return self.Title 
+0

अपना मॉडल कोड दिखाएं –

उत्तर

20

Django प्रलेखन यह स्पष्ट है कि FileField varchar फ़ाइल संदर्भ (फ़ाइल का नाम) स्टोर करने के लिए इस्तेमाल किया स्तंभ की लंबाई को बदलने के लिए एक वैकल्पिक तर्क लेता बनाता है।

Taken from the Django documentation here:

FileField उदाहरणों 100 अक्षरों का एक डिफ़ॉल्ट अधिकतम लंबाई के साथ varchar स्तंभ के रूप में अपने डेटाबेस में बनाया जाता है। अन्य क्षेत्रों के साथ, आप max_length तर्क का उपयोग कर अधिकतम लंबाई बदल सकते हैं।

आदेश में इस MAX_LENGTH पैरामीटर का उपयोग करने के लिए, आप बस पैरामीटर मॉडल के क्षेत्र घोषणा में है, इसलिए की तरह जोड़ने में:

class File(models.Model): 
    Record = models.ForeignKey(Records) 
    Title = models.CharField(max_length=255, blank=False) 
    File = models.FileField(upload_to='files/Records', blank=False, max_length=500) 
    Upload_date = models.DateTimeField(auto_now_add=True) 

def __unicode__(self): 
    return self.Title 

FileField के MAX_LENGTH Django द्वारा प्रदान डेटाबेस पर लागू की जाती है स्तर। जब आप मॉडल परिभाषा में परिवर्तन करते हैं जिसे डेटाबेस स्तर पर लागू किया जाना चाहिए, तो आप डेटाबेस में इस परिवर्तन को प्रभावित करने के लिए सिंकडीबी या माइग्रेशन का उपयोग कर सकते हैं। बस अपनी मॉडल परिभाषा में max_length पैरामीटर को बदलने से कोई प्रभाव नहीं पड़ेगा, जब तक कि आप इस परिवर्तन को प्रतिबिंबित करने के लिए अपने डेटाबेस को माइग्रेट न करें।

इस विशेष मामले में, वर्चर कॉलम जो फ़ाइल फ़ाइल में संग्रहीत फ़ाइल में संदर्भ फ़ाइल नाम का प्रतिनिधित्व करता है उसे अधिक लंबाई के फ़ाइल नामों को अनुमति देने के लिए अद्यतन किया जाना चाहिए। कृपया सुनिश्चित करें कि आपने यह सुनिश्चित करने के लिए आवश्यक डेटाबेस रखरखाव किया है कि आपके मॉडल के फ़ील्ड विश्वसनीय रूप से आपके डेटाबेस में प्रदर्शित हों। माइग्रेशन के बारे में अधिक जानकारी here मिल सकती है।

+0

यह अजीब बात है। मैं पहले अधिकतम लम्बाई के साथ साबित हुआ लेकिन काम नहीं किया। अब पूरी तरह से काम करता है। धन्यवाद! – Audoen

संबंधित मुद्दे