Mam następujący model:Jak powiązać obraz z formularzem edycji w Django?
class Listing(models.Model):
name = models.CharField(max_length=50, verbose_name="Title")
images = models.ManyToManyField('Image')
, z ManyToManyField
linkami do tego Image
Klasa:
class Image(models.Model):
thumb = ImageField(upload_to='images/uploads/')
number = models.PositiveSmallIntegerField()
i odpowiedni ModelForm
tak:
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')
Chodzi o to, aby nie ograniczaj liczby zdjęć, które mogą być powiązane z Listing
ckend, ale w tej chwili potrzebuję tylko 3 obrazy w formularzu. Przesyłanie obrazów działa dobrze, ale jak byś postąpił wiążąc formularz z instancją Listing
, aby obrazy nie były "Brakiem", gdy przegląda się formularz edycji?
Oczywiście, samo to nie będzie działać, ponieważ image1
, image2
i image3
są tylko pola formularza, a nie częścią modelu:
form = forms.ListingEditForm(instance=listing)
Więc dodanie słownika jako pierwszy parametr wydaje się oczywiste rzecz do zrobienia:
form = forms.ListingEditForm({'image1': ...},instance=listing)
ale co należy wartość tego ...
być? I jak mogę go pobrać z instancji Listing
?