为什么我不将数据发布到数据库Django/Python

2024-10-02 02:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法将数据获取到我的数据库我是否遗漏了一些内容。学习了一些教程,尝试了我自己的调整,但到目前为止运气不佳。我没有收到任何错误,但是当我在表单上单击submit时,我的数据库没有填充

我的观点

def createUser(request):
    # form = UserForm()
    args = {}    

    if request.method=='POST':
        userform = UserForm(request.POST)
        petform = PetForm(request.POST)

        if userform.is_valid() and petform.is_valid():
            newuser = userform.save()
            newpet = petform.save(False)

            newpet.newuser = newuser
            newpet.save()
            return render(request, 'pet_list.html' )
    else:
        userform = UserForm()
        petform = PetForm()

    args.update(csrf(request))
    args['userform'] = userform
    args['petform'] = petform
    return render(request, 'add_user_pet.html', args)

我的模板

  <form action="/ " method="POST" >
    {% csrf_token %} 
    <h3 class="details">User Info</h3>
      {{userform}}
      <h3 class="details">Pet Info</h3>
      {{petform}}

  <input type="submit"/>
  </form>

Form.py

class UserForm(forms.ModelForm):
    name = NameField()
    email = forms.CharField(label='E-mail',widget=forms.TextInput(attrs={"placeholder":"Whats your email"}))

    class Meta:
        model = User
        fields = ['name', 'email']

#################################################


class PetForm(forms.ModelForm):

    class Meta:
        model = Pet
        fields = [
            'name', 
            'submitter',
            'species',
            'breed',
            'description',
            'sex',
            'age'
            ]

我的URL.py

urlpatterns = [
    path('', views.home, name='home'),
    path('user_list', views.userlist, name='userlist'),
    path('pet_list', views.petList, name='petlist'),
    path('user_pet', views.userPet, name='userpet'),
    path('add_user_pet', views.createUser, name='add_user_pet')
    path('user_detail/<int:user_id>', views.userdetail, name='detail'),

Tags: pathnameformrequestargsformsposth3
1条回答
网友
1楼 · 发布于 2024-10-02 02:27:23

您的表单操作指向“/”,它将进入主视图,但您希望调用“add\u user\u pet”将您的帖子定向到createUser视图

 <form action="/ " method="POST" >

应该是

 <form action="add_user_pet" method="POST" >

更“django”的方法是不直接放置url,而是使用在urlspatterns中定义的路径名:

 <form action="{% url 'add_user_pet' %}" method="POST" >

这样,您就可以使用urlspatterns名称

相关问题 更多 >

    热门问题