Tôi có Model sau:Làm cách nào để gắn hình ảnh vào biểu mẫu chỉnh sửa ở Django?
class Listing(models.Model):
name = models.CharField(max_length=50, verbose_name="Title")
images = models.ManyToManyField('Image')
, với ManyToManyField
liên kết đến Image
lớp này:
class Image(models.Model):
thumb = ImageField(upload_to='images/uploads/')
number = models.PositiveSmallIntegerField()
và ModelForm
tương ứng như sau:
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')
Ý tưởng là để không giới hạn số lượng hình ảnh có thể được liên kết với một số Listing
trong ba ckend, nhưng tại thời điểm này tôi chỉ cần 3 hình ảnh trong biểu mẫu. Tải lên các hình ảnh hoạt động tốt, nhưng làm thế nào bạn sẽ đi về ràng buộc các hình thức để một ví dụ Listing
để các hình ảnh không phải là 'Không' khi một trong những xem các hình thức chỉnh sửa?
Rõ ràng, điều này một mình sẽ không làm việc, vì image1
, image2
và image3
chỉ lĩnh vực hình thức, chứ không phải là một phần của mô hình:
form = forms.ListingEditForm(instance=listing)
Vì vậy, thêm một từ điển như tham số đầu tiên có vẻ như rõ ràng điều cần làm:
form = forms.ListingEditForm({'image1': ...},instance=listing)
nhưng giá trị của số đó ...
là gì? Và làm thế nào để lấy nó từ ví dụ Listing
?