亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

NoReverseMatch 在 /main/insert_num/ Django

NoReverseMatch 在 /main/insert_num/ Django

守著一只汪 2022-10-18 15:05:19
我正在嘗試制作一個 django Web 應用程序,該應用程序具有一個要求用戶輸入電話號碼并將該號碼存儲在 postgres 數據庫中的表單。以下代碼給了我錯誤:/main/insert_num/ 處的 NoReverseMatch未找到“”的反向。'' 不是有效的視圖函數或模式名稱。而且我無法弄清楚問題是什么,有人可以幫忙嗎?索引.html<html><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <meta http-equiv="X-UA-Compatible" content="ie=edge">  <title>Test Form 1</title></head><body>  <form action="{% url 'insert_my_num' %}" method="post" autocomplete="off">    {% csrf_token %}    <!-- {{ form.as_p }} -->    <input type="submit" value="Send message">  </form></body></html>表格.pyfrom django import formsfrom phone_field import PhoneFieldfrom main.models import Postclass HomeForm(forms.ModelForm):    phone = PhoneField()    class Meta:        model = Post        fields = ('phone',)模型.pyfrom django.db import modelsfrom phone_field import PhoneFieldclass Post(models.Model):    phone = PhoneField()主/urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [    path('insert_num/', views.insert_my_num,name='insert_my_num')]項目/urls.pyfrom django.contrib import adminfrom django.urls import path,includeurlpatterns = [    path('admin/', admin.site.urls),    path('main/',include('main.urls'))]視圖.pydef insert_my_num(request: HttpRequest):    phone = Post(request.POST.get('phone'))    phone.save()    return redirect('')
查看完整描述

1 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

你views.py有點偏離 - 你沒有在任何地方呈現你的表單。我起草了一個快速應用程序(我認為它可以滿足您的需求) - 如果它有效,請告訴我:


主/模板/index.html


在這里,我只是將表單的操作設置為""(這就是您所需要的)并取消注釋該form.as_p行


<html>

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

  <title>Test Form 1</title>

</head>

<body>

  <form action="" method="post" autocomplete="off">

    {% csrf_token %}

    {{ form.as_p }}

    <input type="submit" value="Send message">

  </form>

</body>

</html>

主/views.py


請注意這里的差異,我們正在測試請求類型并根據傳入的請求類型采取適當的措施。如果是 POST 請求,我們將處理表單數據并保存到數據庫中。如果沒有,我們需要顯示一個空白表格供用戶填寫。


from django.shortcuts import render, redirect

from .forms import HomeForm



def insert_my_num(request):

    # Check if this is a POST request

    if request.method == 'POST':

        # Create an instance of HomeForm and populate with the request data

        form = HomeForm(request.POST)

        # Check if it is valid

        if form.is_valid():

            # Process the form data - here we're just saving to the database

            form.save()

            # Redirect back to the same view (normally you'd redirect to a success page or something)

            return redirect('insert_my_num')

    # If this isn't a POST request, create a blank form

    else:

        form = HomeForm()


    # Render the form

    return render(request, 'index.html', {'form': form})

讓我知道這是否有效!


查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號