私は、次のモデルがあります:イメージをDjangoの編集フォームにバインドする方法は?
class Listing(models.Model):
name = models.CharField(max_length=50, verbose_name="Title")
images = models.ManyToManyField('Image')
、このImage
クラスへのリンクManyToManyField
で:
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
インスタンスから取得するにはどうすればよいですか?