Django - how to make ImageField/FileField optional?

前端 未结 2 1792
温柔的废话
温柔的废话 2020-12-09 14:42
class Product(models.Model):
    ...    
    image = models.ImageField(upload_to = generate_filename, blank = True)  

When I use ImageField (blank=

相关标签:
2条回答
  • 2020-12-09 15:06

    blank=True should work. If this attribute, which is False by default, is set to True then it will allow entry of an empty value.

    I have the following class in my article app:

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

    I make use of the above class in another class by using the ManyToManyField relationship:

    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)
    

    I want to make images in my articles optional, so blank=True in

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

    is necessary. This allows me to create an article without any images if I want to.

    Are you using class Product in any relationship? If so, make sure to set blank=True in the relationship you are using.

    0 讨论(0)
  • 2020-12-09 15:28

    Set null=True (see documentation)

    class Product(models.Model):
        ...    
        image = models.ImageField(upload_to=generate_filename, blank=True, null=True)
    
    0 讨论(0)
提交回复
热议问题