Как после отправки формы django перенаправить на другую веб-страницу и отправить данные формы в серверную базу данных

#javascript #python #django

#javascript #python #django

Вопрос:

Цель: при отправке формы django данные должны быть отправлены и сохранены на стороне администратора.

проблема: я могу перенаправить ее на другую страницу после отправки формы, но когда я перехожу на сторону администратора, данные не сохраняются. как я могу это исправить? используя django или javascript?

HTML:

 
    <form method="post"  >
                        {% csrf_token %}
                        {{form.as_p}}
                        <input class="btn" type="submit" value="Log In">
                    </form>

  

models.py:

 
    from django.db import models
    from django import forms
    
    
    
    class Customer(models.Model):
        first_name = models.CharField(max_length=200, verbose_name='')
        last_name = models.CharField(
            max_length=200, verbose_name='')
    
        def __str__(self):
            return self.first_name   ', '   self.last_name

  

forms.py:

 
    from django.forms import ModelForm
    from django import forms
    from .models import Customer
    
    
    class CustomerForm(ModelForm):
        class Meta:
            model = Customer
            fields = '__all__'

  

views.py:

 from django.shortcuts import render
from .forms import CustomerForm


def index(request):

    form = CustomerForm()

    if request.method == 'POST':
        form = CustomerForm(request.POST)
        if form.is_valid():
            form.save()

    context = {'form': form}
    return render(request, 'app/index.html', context)

  

Ash вот что это дает мне: код и ошибка, которые он выдает мне
если вам нужны какие-либо другие файлы, просто спросите

ошибка перенаправления, которую я получаю ошибка, которую она выдает мне

Ответ №1:

После написания form.save() вы можете сказать:

вернуть перенаправление (ссылка для перенаправления на)

Это перенаправит вас в выбранное место после проверки и сохранения формы.

Комментарии:

1. я добавил к сообщению изображение кода и ошибки, которые он возвращает, когда я это делаю

2. попробуйте ввести это точно, верните redirect (‘ google.com /’ )

3. когда я попробовал, мне сказали, что перенаправление не определено

4. Обязательно введите из django.shortcuts импорт перенаправления вверху страницы

Ответ №2:

Добавьте одну строку после сохранения вашей формы

 # put link inside -> " "
return redirect("Link")
  

Комментарии:

1. спасибо, но я сделал это, и я получил ошибку, я добавил изображение того, что я получаю в сообщении

2. это выдает ошибку, в которой говорится, что имя «перенаправление» не определено

3. импортировать этот пакет -> из django.shortcuts импортировать перенаправление

Ответ №3:

Измените html как метод =»POST»

 if request.method == 'POST':
    form = CustomerForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect('urlname')
else:
    form = CustomerForm()
context = {'form': form}
return render(request, 'app/index.html', context)