Почему в поле формы множественного выбора только одно значение Django? - PullRequest
0 голосов
/ 12 апреля 2020

Возникли проблемы при получении этой формы для отправки / сохранения нескольких входных данных из моего поля формы множественного выбора ...

def StaffHome(request):

dates = request.user.availability_set.all()
bookings = request.user.booking_set.all()

if request.method == 'POST':
    if 'remove' in request.POST:
        form = RemoveDate(request.user, request.POST)
        if form.is_valid():
            for d in form.cleaned_data['date']:
                for i in dates:
                    if d == str(i.dates):
                        i.delete()
                    return redirect('main-home')
    elif 'add' in request.POST:
        form = AddDate(request.user, request.POST)
        if form.is_valid():
            for d in form.cleaned_data['date']:
                Availability.objects.create(user=request.user, dates=d)
                return redirect('main-home')



context = {
    'today': datetime.datetime.now().date(),
    'bookings': bookings,
    'form': AddDate(request.user),
    'form2': RemoveDate(request.user),
    'dates': dates
}

return render(request, 'users/staffhome.html', context)

Я пытался использовать request.POST.getlist ('date'), но это бросало Ошибка метода объекта не допускается.

1 Ответ

2 голосов
/ 12 апреля 2020

Вы возвращаетесь в нужное место, пожалуйста, проверьте.

def StaffHome(request):

dates = request.user.availability_set.all()
bookings = request.user.booking_set.all()

if request.method == 'POST':
    if 'remove' in request.POST:
        form = RemoveDate(request.user, request.POST)
        if form.is_valid():
            for d in form.cleaned_data['date']:
                for i in dates:
                    if d == str(i.dates):
                        i.delete()
             return redirect('main-home')
    elif 'add' in request.POST:
        form = AddDate(request.user, request.POST.getlist('add'))
        if form.is_valid():
            for d in form.cleaned_data['date']:
                Availability.objects.create(user=request.user, dates=d)
            return redirect('main-home')



context = {
    'today': datetime.datetime.now().date(),
    'bookings': bookings,
    'form': AddDate(request.user),
    'form2': RemoveDate(request.user),
    'dates': dates
}

return render(request, 'users/staffhome.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...