2010-04-20 13 views
26
class Product(models.Model): 
    ...  
    image = models.ImageField(upload_to = generate_filename, blank = True) 

जब मैं ImageField (blank = True) का उपयोग करता हूं और व्यवस्थापक रूप में छवि का चयन नहीं करता, अपवाद अवसर।Django - ImageField/FileField वैकल्पिक कैसे बनाएं?

Django कोड में आप यह देख सकते हैं:

class FieldFile(File): 
    .... 

    def _require_file(self): 
     if not self: 
      raise ValueError("The '%s' attribute has no file associated with it." % self.field.name) 

    def _get_file(self): 
     self._require_file() 
     ... 

Django Trac इस समस्या के बारे टिकट # 13,327 है, लेकिन यह जल्द ही तय नहीं किया जा सकता है लगता है। इन फ़ील्ड को वैकल्पिक कैसे बनाएं?

+0

क्या आपको कोई समाधान मिला, ऐसा लगता है कि मेरे पास अब एक ही समस्या है – niklas

उत्तर

19

सेट null=True (documentation देख)

class Product(models.Model): 
    ...  
    image = models.ImageField(upload_to=generate_filename, blank=True, null=True) 
+31

शून्य = सत्य डरावना है, खाली = सत्य पर्याप्त है क्योंकि ImageField/FileField वास्तव में नीचे CharFields हैं ... – dlamotte

+21

null = True कुछ भी नहीं करता FileField या ImageField https://code.djangoproject.com/ticket/10244 के लिए – nont

13

blank=True काम करना चाहिए। यदि यह विशेषता डिफ़ॉल्ट रूप से False है, तो True पर सेट है, तो यह खाली मान की प्रविष्टि की अनुमति देगा।

मैं अपने लेख ऐप्लिकेशन में निम्न वर्ग है:

class Article(models.Model): 
     pub_date = models.DateTimeField(default=timezone.now) 
     slug = models.SlugField(max_length=130) 
     title = models.TextField() 
     photo = models.ManyToManyField(
      Photo, related_name='photos', blank=True) 
     author = models.ForeignKey(User) 
     body = models.TextField() 
     categories = models.ManyToManyField(
      Category, related_name='articles', null=True) 

मैं में छवियों बनाना चाहते:

class Photo(models.Model): 
     imagename = models.TextField() 
     articleimage = models.ImageField(upload_to='photos/%Y/%m/%d', blank=True) 

मैं ManyToManyField संबंध का उपयोग करके किसी अन्य वर्ग में ऊपर वर्ग का इस्तेमाल करते हैं मेरे लेख वैकल्पिक, blank=True

photo = models.ManyToManyField(Photo, related_name='photos', blank=True) 

आवश्यक है। यह मुझे किसी भी छवि के बिना एक लेख बनाने की अनुमति देता है अगर मैं चाहता हूं।

क्या आप किसी भी रिश्ते में कक्षा Product का उपयोग कर रहे हैं? यदि ऐसा है, तो आप जिस रिश्ते का उपयोग कर रहे हैं उसमें blank=True सेट करना सुनिश्चित करें।

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