无法在Django中使用POST方法使用模式形式

时间:2019-10-11 12:56:08

标签: django

那是我在Django中的第一个项目。我想制作表格并以模态形式添加项目。我使用Mysql数据库。从phpmyadmin手动添加的项目已存在于表中,但是当我尝试从模式形式添加时无法添加。 views.py

from django.shortcuts import render
from django.http import HttpResponse


from .models import Client

def viewpost(request):

    post_list = Client.objects.all()
    context = {
        'posts': post_list
    }
    return render(request, 'mysite/viewtable.html', context)

def add_client(request):
    if request.method == 'POST':
        post = Client()
        post.name = request.POST.get('name')
        post.surname = request.POST.get('surname')
        post.address = request.POST.get('address')
        post.gender = request.POST.get('gender')
        post.age = request.POST.get('age')
        post.save()

        return render(request, 'mysite/viewtable.html')

    else:
        return render(request, 'mysite/viewtable.html')

url.py:

from django.urls import path
from . import views
urlpatterns = {
    path('viewtable/', views.viewpost, name='viewpost'),
    path('viewtable/#add_data_Modal', views.add_client, name='add_client'),
}

2 个答案:

答案 0 :(得分:0)

在表格和模式表格不能一起使用之前。如果表工作正常,则模式形式没有添加到数据库中或相反。现在可以一起工作:模态表格添加到数据库,然后表格显示页面上的数据。但是,当我刷新页面数据两次添加到数据库。 views.py:

def viewpost(request):
    post_list = Persona.objects.all()
    context = {
        'posts': post_list
    }
    if request.method == 'POST':
        if request.POST.get('name') and request.POST.get('surname') and request.POST.get('address'):
            post = Client()
            post.name = request.POST.get('name')
            post.surname = request.POST.get('surname')
            post.address = request.POST.get('address')
            post.age = request.POST.get('age')
            post.save()



            return render(request, 'mysite/viewtable.html', context)

    else:
        return render(request, 'mysite/viewtable.html')

答案 1 :(得分:0)

那就解决了。这是视图

def viewpost(request):
        post_list = Persona.objects.all()


        if request.method == 'POST':
            if request.POST.get('name') and request.POST.get('surname') and 
            request.POST.get('address'):
                post = Persona()
                post.name = request.POST.get('name')
                post.surname = request.POST.get('surname')
                post.address = request.POST.get('address')
                post.age = request.POST.get('age')
                post.save()


                return HttpResponseRedirect('/viewtable')

        else:

            return render(request, 'mysite/viewtabel.html', {'posts': post_list}