Django POST данные через форму и перенаправление на страницу с POST данными
У меня есть форма Django, которую после отправки данных я хотел бы перенаправить на другую страницу, где эти данные будут отображены.
У меня проблемы, поскольку я не знаю, как получить внешний ключ, пока форма не будет отправлена
Форма
class addEventForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(addEventForm, self).__init__(*args, **kwargs)
class Meta:
model = Event
fields = '__all__'
View
class addEventView(LoginRequiredMixin,View):
template_name = 'pages/add_event.html'
def get(self, request, *args, **kwargs):
return render(request, self.template_name)
def post(self, request, *args, **kwargs):
form = addEventForm(request.POST)
if form.is_valid():
form.save()
data = {"success": "successfully added"}
else:
data = {"error": form.errors}
return JsonResponse(data, safe=False)
Как мне перенаправить данные из POST
?
Спасибо
Вы можете воспользоваться CreateView и success_url
Попробуйте
from django.views.generic.edit import CreateView
from django.urls.base import reverse_lazy
class addEventView(LoginRequiredMixin, CreateView):
template_name = 'pages/add_event.html'
model = Event
form_class = addEventForm
success_url = reverse_lazy('url_name_you_want_to_redirect_to')
FYI: в python имена классов обычно должны использовать соглашение CapWords, поэтому лучше изменить addEventForm
на AddEventForm
и addEventView
на AddEventView
с уважением.