Я пытаюсь написать веб-приложение, которое принимает входные данные посетителя веб-сайта, который представляет собой номер членской карты 12 di git «Chuckee Cheese», а затем редактирует первые 8 цифр и представляет отредактированный номер. У меня есть написанный шаблон и базовый c logi c внутри моего приложения views.py. Проблема в том, что после того, как пользователь вводит номер своей карты, Django не обрабатывает ввод пользователя должным образом. Например, отредактированный номер не отображается и не отображается в шаблоне, как задумано.
Вот pi c на imgur, показывающий, что мой веб-сайт сейчас работает на моем dev-сервере . Как вы можете видеть в этом pi c, в строке веб-адреса Django получает запрос GET ccEntry с «123456789102» в качестве ввода пользователя. Так что я думаю, что это работает. Но под двумя элементами h1
(салатовый), Django должен отображать номер карты «123456789102», а также номер отредактированной карты «xxxx xxxx 9102», но вместо этого он пуст. Что здесь не так? Насколько я могу судить, я считаю, что проблема связана либо с первыми двумя функциями внутри моего redactors
views.py, либо с тем, как устроен urls.py моего приложения.
Вот мой views.py :
from django.shortcuts import render
# Create your views here.
def redactors(request):
return render(request, 'alls/landings.html')
def home(request):
if 'ccEntry' in request.GET:
number = request.GET['ccEntry']
redacted_num = 'xxxx xxxx {}'.format(number[-4:])
return render(request, 'alls/landings.html', {'number':number, 'redacted_num':redacted_num})
else:
return render(request, 'alls/landings.html')
def results(request):
return render(request, 'alls/landings.html')
Вот мое приложение urls.py :
from django.urls import path, include
from . import views
urlpatterns = [
path('home', views.home, name='home'),
path('results', views.results, name='results'),
]
Те это два сценария, в которых, как я считаю, проблема.
Что бы это ни стоило, вот некоторые другие связанные файлы конфигурации и скрипты, которые используются:
Слегка сокращено все / лендинги. html шаблон:
{% load static %}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="The HTML5 Herald">
<meta name="robots" content="noindex,nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Custom -->
<link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
{% block content %}
<div class="card-processor">
<h3>Enter your fake Chuckee Cheese Neptune membership card number!</h3>
<form action="{% url 'posts' %}" method="get">
<div>
<label for="password">Enter Card Number:</label>
<input type="text" id="password" name="ccEntry" pattern="[0-9]{12}" maxlength="12"/>
<div class="requirements">Must be a 12 digit number and no letters. </div>
<input type="submit" value="Redact!" class="button"/>
</div>
</form>
<h1>Here is your fake Chuckee Cheese Neptune memnership card number!</h1>
<h3 style="color:lime">This was the original number that you entered:</h3>
<div class="field">{{ number }}</div>
<h3 style="color:lime">Here it is redacted:</h3>
<div class="field">{{ redacted_num }}</div>
<a href="{% url 'posts' %}"><div class="field"><strong>Again? Click here!</strong></div></a>
</div> <!--- END card-processor -->
<div class="post-content">
{% for post in posts %}
<h1> Blog post title: <em>{{ post.title }}</strong></em>
<h4>Publication Date: {{ post.pub_date_preference }}</h4>
<img src="{{ post.image.url }}" class="authors-pic" style="" />
<!-- Body text should go here : -->
<p>{{ post.body|safe }}</p>
{% endfor %}
{% endblock %}
</body>
</html>
Родитель urls.py роутер:
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('posts.urls')),
path('', include('redactors.urls')),
path('', include('counters.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Я считаю, что это все соответствующие файлы в игре. Однако, если проблема в другом месте, если вы хотите увидеть остальную часть моего исходного кода, вот снимок состояния c с тегом v.0.7.0 на моем GitHub .
Также стоит отметить, что я не получаю обратного отслеживания, и мой сервер не дает сбоев, поэтому у меня не так много потенциальных клиентов с точки зрения поиска в Google других разработчиков, решающих аналогичные или связанные проблемы.