example - Django: ¿cómo hacer que ImageField/FileField sea opcional?
imagefield django example (2)
class Product(models.Model):
...
image = models.ImageField(upload_to = generate_filename, blank = True)
Cuando uso ImageField (blanco = Verdadero) y no selecciono imagen en forma de administrador, se produce una excepción.
En el código django puedes ver esto:
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 tiene el boleto # 13327 sobre este problema, pero parece que no se puede arreglar pronto. ¿Cómo hacer que estos campos sean opcionales?
Set null=True
(ver documentation )
class Product(models.Model):
...
image = models.ImageField(upload_to=generate_filename, blank=True, null=True)
blank=True
debería funcionar. Si este atributo, que es False
de forma predeterminada, se establece en True
, permitirá la entrada de un valor vacío.
Tengo la siguiente clase en mi aplicación de artículo:
class Photo(models.Model):
imagename = models.TextField()
articleimage = models.ImageField(upload_to=''photos/%Y/%m/%d'', blank=True)
Hago uso de la clase anterior en otra clase usando la relación ManyToManyField
:
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)
Quiero hacer que las imágenes en mis artículos sean opcionales, tan en blank=True
en
photo = models.ManyToManyField(Photo, related_name=''photos'', blank=True)
es necesario. Esto me permite crear un artículo sin imágenes si quiero.
¿Estás utilizando el Product
clase en cualquier relación? Si es así, asegúrese de establecer en blank=True
en la relación que está utilizando.