Форма не может перенаправить url после нажатия на кнопку django
У меня есть веб-страница, как показано на рисунке ниже, когда я нажимаю на кнопку добавления упаковки или комплектации, она должна перенаправить меня на этот url: http://127.0.0.1:8000/packing/13/, но он перенаправляет меня обратно на главную страницу: http://127.0.0.1:8000/gallery/. Единственный раз, когда я хочу перенаправить обратно на этот url: http://127.0.0.1:8000/gallery/, это когда пользователь заполнил одну из необязательных форм и нажал на кнопку отправки. Как мне решить эту проблему?
views.py
@login_required()
def packing(request, id):
photo = get_object_or_404(Photo, id=id)
if request.method == "POST":
form = packingForm(request.POST, instance=photo)
pickingform = pickingForm(request.POST, instance=photo)
if form.is_valid():
if form != photo.packing:
photo.status = 'Packing'
photo.Datetime = datetime.now()
form.save()
if pickingform != photo.picking:
photo.status = 'Picking'
photo.Datetime = datetime.now()
form.save()
return redirect('gallery')
else:
form = packingForm(instance=photo)
pickingform = pickingForm(instance=photo)
context = {
"form": form,
"pickingform": pickingform
}
return render(request, 'packing.html', context)
forms.py
class packingForm(forms.ModelForm):
packing = forms.CharField(label='',
widget=forms.TextInput(attrs={"class": 'form-control', 'placeholder': 'Indicate packed if the item has been packed'}))
class Meta:
model = Photo
fields = ("packing", )
def __init__(self, *args, **kwargs):
super(packingForm, self).__init__(*args, **kwargs)
self.fields['packing'].required = False
#self.fields['picking'].required = False
class pickingForm(forms.ModelForm):
picking = forms.CharField(label='',
widget=forms.TextInput(attrs={"class": 'form-control',
'placeholder': 'Indicate picked if the item has been picked'}))
class Meta:
model = Photo
fields = ("picking",)
def __init__(self, *args, **kwargs):
super(pickingForm, self).__init__(*args, **kwargs)
self.fields['picking'].required = False
details.html
urls.py
path('details/<str:pk>/', views.details, name='details'),