Necesito subir unas imágenes al servidor a través de un formulario. La dificultad con la que me encuentro es que se trata de un form que actúa sobre dos modelos que se relacionan a través de una Foreign Key (one to many). Los modelos son los siguientes:
Código:
class Anuncio(models.Model): titulo = models.CharField(max_length=200) texto = models.CharField(max_length=750) ciudad=models.ForeignKey(Ciudad,null=True,blank=True,on_delete=models.CASCADE) categoria=models.ForeignKey(Categoria,null=True,blank=True,on_delete=models.CASCADE) slug=models.SlugField(max_length=250) activo=models.BooleanField(default=True) net_address=models.CharField(max_length=200) fecha_publicacion=models.DateTimeField(default=datetime.now(), blank=True) premium = models.BooleanField(default=False) fecha_premium = models.DateTimeField(blank=True, null=True) password = models.CharField(max_length=50) telefono = models.CharField(max_length=20) class Imagen(models.Model): imagen = models.ImageField(upload_to='static/media') anuncio = models.ForeignKey(Anuncio,null=True,blank=True,on_delete=models.CASCADE)
El código para los formularios es el siguiente:
Código:
from django import forms from apps.anuncios.models import Anuncio, Imagen class AddAnuncio(forms.ModelForm): class Meta: model = Anuncio fields=[ 'ciudad', 'categoria', 'titulo', 'texto', 'password', 'telefono', ] labels={ 'ciudad': 'Ville', 'categoria': 'Categorie', 'titulo': 'Titre', 'texto': 'Description', 'password':'Mot de passe:', 'telefono':'Téléphone', } widgets = { 'ciudad': forms.Select(), 'categoria': forms.Select(), 'titulo': forms.TextInput(), 'texto': forms.TextInput(), 'password': forms.TextInput(), 'telefono': forms.TextInput(), } class AddImagen(forms.ModelForm): class Meta: model = Imagen fields = [ 'imagen', ] labels = { 'imagen': 'Photo', }
Me faltaría programar la vista respectiva que me permita subir el anuncio y sus imágenes a través de modelformset_factory. Es en este punto donde no consigo hacer que mi proyecto funcione adecuadamente, por eso solicito ayuda. Desde ya mismo doy las gracias a las personas que quieran ayudarme.