我有以下型號:如何將圖像綁定到Django中的編輯窗體?
class Listing(models.Model):
name = models.CharField(max_length=50, verbose_name="Title")
images = models.ManyToManyField('Image')
,與ManyToManyField
鏈接到這個Image
類:
class Image(models.Model):
thumb = ImageField(upload_to='images/uploads/')
number = models.PositiveSmallIntegerField()
和相應ModelForm
像這樣:
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')
的想法是不限制可以與ba中的Listing
相關聯的圖像的數量ckend,但是目前我只需要3張圖片。上傳圖片效果很好,但是如何將表單綁定到Listing
實例,以便在查看編輯表單時圖像不是「無」?
顯然,這不會單獨工作,因爲image1
,image2
和image3
僅表單域,而不是模型的一部分:
form = forms.ListingEditForm(instance=listing)
所以加入字典作爲第一個參數似乎是顯而易見的做的事:
form = forms.ListingEditForm({'image1': ...},instance=listing)
,但我應該是...
的價值是什麼?我該如何從Listing
實例中檢索它?