Django-如何使ImageField/FileField成为可选的?

Django-如何使ImageField/FileField成为可选的?,django,django-models,Django,Django Models,当我使用ImageField(blank=True)并且没有将图像选择到管理表单中时,会发生异常 在django代码中,您可以看到: class Product(models.Model): ... image = models.ImageField(upload_to = generate_filename, blank = True) Django-trac对这个问题持有13327号罚单,但似乎不能很快解决。如何使这些字段可选?设置null=True(请参阅)

当我使用ImageField(blank=True)并且没有将图像选择到管理表单中时,会发生异常

在django代码中,您可以看到:

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

Django-trac对这个问题持有13327号罚单,但似乎不能很快解决。如何使这些字段可选?

设置
null=True
(请参阅)


blank=True
应该可以工作。如果此属性(默认情况下为
False
)设置为
True
,则它将允许输入空值

我的文章应用程序中有以下类:

class Product(models.Model):
    ...    
    image = models.ImageField(upload_to=generate_filename, blank=True, null=True)
我通过使用
ManyToManyField
关系在另一个类中使用上述类:

class Photo(models.Model):
        imagename = models.TextField()
        articleimage = models.ImageField(upload_to='photos/%Y/%m/%d', blank=True)
我想让文章中的图像成为可选的,因此
blank=True
in

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
Product
?如果是,请确保在您使用的关系中设置
blank=True

如果“可选”表示您希望能够完全忽略图像字段。然后
blank=True
,就这样做吧。但是,如果您仍然收到相同的错误,则这意味着您正在模板中的某个位置使用它的
url
,或者尝试在
models.py
views.py
中打开图像的路径(可能是调整图像大小或其他一些后端预处理)。
这就是为什么在处理文件时总是建议使用
try
-
catch
块。

null=True很可怕,blank=True就足够了,因为ImageField/FileField实际上是下面的CharFields…null=True对FileField或ImageField没有任何作用您找到解决方案了吗,我现在似乎也有同样的问题,为什么你不为图像使用null?尝试这样做,我得到了
django.db.utils.integrityyror:NOT null约束失败:new\uu app\u idea.image
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)
photo = models.ManyToManyField(Photo, related_name='photos', blank=True)