Почему я получаю этот AttributeError при отправке формы - PullRequest
0 голосов
/ 07 февраля 2020

У меня ошибка при отправке формы. Когда он загружается, я получаю сообщение об ошибке: у объекта 'list' нет атрибута 'imageuploader_profile

@login_required
def upload(request):
    PostFormSet = modelformset_factory(Image, fields=('image',), extra=2)
    formset = PostFormSet(request.POST or None,request.FILES or None)
    if request.method == "POST":
        print(request.FILES)
        if formset.is_valid():
            post = formset.save(commit=False)
            post.imageuploader_profile = request.user
            post.save()
            for f in formset:
                try:
                    file = Image(
                        imageuploader_profile=post,
                        image=f.cleaned_data['image'],
                        image_caption=f.cleaned_data['image_caption'],
                        tag_someone=f.cleaned_data['tag_someone'],
                    )
                    file.save()
                except:
                    break
    else:
        formset = PostFormSet(queryset=Image.objects.none())
    return render(request, 'upload.html', {"formset": formset})

<form action="{% url 'site:upload' %}" method="post" enctype="multipart/form-data">
        {%csrf_token%}
        {{ formset }}
         <button type="submit">Post</button>
    </form>

1 Ответ

0 голосов
/ 07 февраля 2020

Вы работаете с формой set , следовательно, это означает, что formset.save(commit=False) вернет список объектов. Таким образом, вы можете перебирать этот список с помощью:

# &hellip;
if formset.is_valid():
    posts = formset.save(commit=False)
    for post in posts:
        post.imageuploader_profile = request.user
        post.save()
# &hellip;

вы должны не перебирать сам formset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...