【发布时间】:2023-03-13 04:19:01
【问题描述】:
我需要以 django 形式将多个图像添加到一个模型中。我做了一项研究,对于 django 之外的表单,我尝试设置 django-multiupload。
我的models.py:
class Profile(models.Model):
...
...
first = models.ImageField("first", upload_to='first')
second = models.ImageField("second", upload_to='second')
...
在forms.py中:
class AddForm(forms.ModelForm):
first = MultiImageField(min_num=1, max_num=20)
second = MultiImageField(min_num=1, max_num=4)
在views.py中:
class UploadView(FormView):
template_name = 'finder/submit.html'
form_class = AddForm
success_url = '/'
def form_valid(self, form):
for each in form.cleaned_data['first']:
Profile.objects.create(first=each)
for each in form.cleaned_data['second']:
Profile.objects.create(second=each)
return super(UploadView, self).form_valid(form)
在提交表单时,此表单会创建多个配置文件对象,其中仅填写第一个/第二个字段。
如何仅创建一个具有剩余字段(第一个/第二个除外)和多个第一个/第二个字段的模型?
这是我在添加多重上传之前的基于函数的视图,但我无法使其工作,也许以某种方式更改它更容易?
def add_form(request, *args, **kwargs):
if request.method == "POST":
form = AddForm(request.POST)
if form.is_valid():
profile = form.save(commit=False)
profile.save()
return redirect('/', pk=profile.pk)
else:
form = AddForm()
return render(request, 'finder/submit.html', {'form': form})
【问题讨论】:
标签: django forms django-forms django-views django-uploads