我已经为此工作了一段时间。我正在尝试建立一个列表网站,用户可以在其中每个帖子上传多张图片,并且受限于他们可以上传的图片数量,到目前为止,this package似乎是我的最佳选择。我确实必须创建一个fork才能使其与django的较新版本一起使用,在django的def渲染器的field.py第23行中添加了renderer = None。这样可以修复错误,并允许我查看表单,但是在提交时,我得到一个“列表”对象,没有属性“名称”错误。我使用this answer来说明这一点。任何帮助将不胜感激!
models.py
class Listing(models.Model):
description = mdoels.TextField(blank=True)
track_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
class Photo(models.Model):
listing = models.ForeignKey(Listing, on_delete=models.CASCADE)
file=models.FileField(upload_to='images', verbose_name = 'Photos')
forms.py
class ListingForm(forms.ModelForm):
photos = MultiImageField(min_num=1, max_num=4)
class Meta:
model = Listing
fields = ['description',]
def save(self, commit=True):
photos = self.cleaned_data('photos')
instance = Super(ListingForm, self).save(commit)
for each in photos:
Photo.objects.create(file = each, listing = instance)
return instance
views.py
class AddForm(CreateView):
model = Listing
template_name = 'marketplace/listing_create.html'
form_class = ListingForm
success_url = 'index'
def form_valid(self, form):
instance = form.save(commit = False)
instance.user = self.request.user
instance.save()
return super(AddForm, self).form_valid(form)