Ho il seguente modello:Come associare un'immagine a un modulo di modifica in Django?
class Listing(models.Model):
name = models.CharField(max_length=50, verbose_name="Title")
images = models.ManyToManyField('Image')
, con il ManyToManyField
collegamento con questa Image
classe:
class Image(models.Model):
thumb = ImageField(upload_to='images/uploads/')
number = models.PositiveSmallIntegerField()
e un corrispondente ModelForm
in questo modo:
class ListingEditForm(ModelForm):
image1 = ImageField(required=False, label="Photo 1")
image2 = ImageField(required=False, label="Photo 2")
image3 = ImageField(required=False, label="Photo 3")
class Meta:
model = Listing
exclude = ('images')
L'idea è quella di non limitare il numero di immagini che possono essere associate a un Listing
nel ba ckend, ma in questo momento ho solo bisogno di 3 immagini nel modulo. Il caricamento delle immagini funziona correttamente, ma come procedere nel collegare il modulo a un'istanza Listing
in modo che le immagini non siano "Nessuna" quando si visualizza il modulo di modifica?
Ovviamente, questo da solo non funziona, perché image1
, image2
e image3
sono solo i campi del modulo, e non fa parte del modello:
form = forms.ListingEditForm(instance=listing)
Quindi l'aggiunta di un dizionario come primo parametro sembra come l'ovvio cosa da fare:
form = forms.ListingEditForm({'image1': ...},instance=listing)
ma quello che dovrebbe il valore di tale ...
essere? E come posso recuperarlo dall'istanza Listing
?