2017-01-07 10 views
2
  • Проблема: Я хочу, чтобы отправить данные формы из index.html в greetings.html, которые показывают имя пользователя на greetings.html, но это отображение ошибки сообщение

    NoReverseMatch at/ Обратный для 'greeting.views.greetings' с аргументами '()' и аргументами ключевого слова '{}' не найден. 0 образец (ы): [] Метод запроса: GET . Можете ли вы предложить простой метод для отправки данных формы на другую страницу с помощью django.как отправить данные формы с одной страницы на другую, используя Джанго

  • Я хочу выбрать поле, отображающее опцию, присутствующую в списке. Внутри формы.

приветствия/шаблон/index.html

{% load static %} 
<!DOCTYPE html> 
<html> 
<head> 
    <title> </title> 
     <meta charset="utf-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <link rel="stylesheet" type="text/css" href="{% static 'greetings/css/style.css' %}" /> 
    {% verbatim %} 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    {% endverbatim %} 
</head> 
<body > 
    <div class="container-fluid" > 
    <div id="home" class=""> 
       <form class="input-form text-center" name = "form" method = "POST" action="{% url 'greetings.views.greetings'%}"> 
        {% csrf_token %} 
       <h1> Create your wishes </h1> 
        <input type="text" name = "username" placeholder="Enter your name"/> 
        <select name="select"> 
         <option value=''>Please Choose your wish</option> 
        </select> 
        <br/> 
        <input id="btn" type="submit" name="submit" value="Create"/> 
       </form> 
    </div> 
    </div> 
</body> 
</html> 

приветствия/шаблон/greetings.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
</head> 
<body> 
<div id="demo-wish"class="card text-center"> 
       <h4> {{ username }} </h4> 
      <h3> Wishes you </h3> 
      <h4> Happy{{ username }} </h4> 
      </div> 
     <div id="demo" class="card text-center"> 
      <form> 
       <h2>Create Your Wishes</h2> 
       <h4>ENTER YOUR NAME TO WISH YOUR FRIENDS AND FAMILY MEMBERS</h4> 
       <span>{{ username }}</span><br/> 
       <input type="text" placeholder="Enter your name"> 
       <input type="submit" class="btn-primary" value="Go"> 
      </form> 
     </div> 
     </div> 
</body> 
</html> 

приветствия/views.py

from django.shortcuts import render 
from django.http import HttpResponse 
from django.template import loader 
from greetings.forms import LoginForm 


def index(request): 
    template = loader.get_template('greetings/index.html') 
    return HttpResponse(template.render(request)) 

def greetings(request): 
    if request.method == "POST": 
     # Get the posted form 
     MyLoginForm = LoginForm(request.POST) 

     if MyLoginForm.is_valid(): 
      username = MyLoginForm.cleaned_data['username'] 
    else: 
     MyLoginForm = LoginForm() 

    return render(request, 'greetings/greetings.html', {"username": username}) 

приветствия/urls.py

from django.conf.urls import url,include 
from django.contrib import admin 
from . import views 

urlpatterns = [ 
    url(r'^$', views.index), 
    url(r'^admin/', admin.site.urls), 
] 

проект/urls.py

from django.conf.urls import url,include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^$', include('greetings.urls')), 
    url(r'^admin/', admin.site.urls), 
] 

приветствия/forms.py

from django import forms 

class LoginForm(forms.Form): 
    occasion=['christmas','New Year'] 
    user = forms.CharField(max_length = 100) 
    select = forms.ChoiceField(widget=forms.Select(choices=occasion)) 

сообщения об ошибке:

NoReverseMatch at/
Reverse for 'greeting.views.greetings' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 
Request Method: GET 
Request URL: http://127.0.0.1:8000/ 
Django Version: 1.10.4 
Exception Type: NoReverseMatch 
Exception Value:  
Reverse for 'greeting.views.greetings' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] 
Exception Location: C:\Users\Captain America\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django-1.10.4-py3.6.egg\django\urls\resolvers.py in _reverse_with_prefix, line 392 
Python Executable: C:\Users\Captain America\AppData\Local\Programs\Python\Python36-32\python.exe 
Python Version: 3.6.0 
Python Path:  
['D:\\django\\project_greetings', 
'C:\\Users\\Captain ' 
'America\\AppData\\Local\\Programs\\Python\\Python36-32\\python36.zip', 
'C:\\Users\\Captain ' 
'America\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs', 
'C:\\Users\\Captain ' 
'America\\AppData\\Local\\Programs\\Python\\Python36-32\\lib', 
'C:\\Users\\Captain America\\AppData\\Local\\Programs\\Python\\Python36-32', 
'C:\\Users\\Captain ' 
'America\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages', 
'C:\\Users\\Captain ' 
'America\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages\\django-1.10.4-py3.6.egg'] 
Server time: Sat, 7 Jan 2017 17:58:39 +0530 
+0

@ e4c5 сэр. Я исправил вопрос. Пожалуйста, помогите мне решить эту проблему. –

ответ

2

Это следующая строка, которая производит ошибку

<form class="input-form text-center" name = "form" method = "POST" action="{% url 'greetings.views.greetings'%}"> 

Но Whe вы смотрите на свой urls.py вы не имеете представление, определенное как это. Поэтому вам нужно определить его в первую очередь.И тогда вам нужно assign it a name если вы хотите, чтобы получить ссылку трейлеров URL-адрес тега

Когда вы называете ваши шаблоны URL, убедитесь, что вы используете имена, которые вряд ли столкновение с выбором любого другого приложения имен. Если вы используете , напишите комментарий вашего шаблона URL-адреса, а другое приложение выполнит то же самое: , нет гарантии, какой URL-адрес будет вставлен в ваш шаблон при использовании этого имени.

Фактически, я рекомендую вам прочитать всю страницу. в ссылке.