Ошибка рендеринга: Обратное для 'ph' без аргументов не найдено.Попробован 1 шаблон (ов): ['(? P <answer>[^ /] +) / ph \\ - data / $'] - PullRequest
0 голосов
/ 24 декабря 2018

Я новичок в кодировании, и здесь я пытаюсь создать сайт, который просто принимает то, что пользователь хочет видеть из выбранного диапазона, когда я запускаю сервер, я сталкиваюсь с этой ошибкой:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/

Django Version: 2.1.3
Python Version: 3.7.1
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'zigview']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Template error:
In template C:\Users\user\Desktop\Frouniter\FrounterWeb- postgreDB\zigview\templates\FrounterWeb\index.html, error at line 12
   Reverse for 'ph' with no arguments not found. 1 pattern(s) tried: ['(?P<answer>[^/]+)/ph\\-data/$']
   2 : <html lang="en">
   3 : <head>
   4 :      {%load staticfiles%}
   5 :      <!-- Mobile resizing  and bootstrap -->
   6 :      {%include 'FrounterWeb/Lib-includes/Mobile-Response.html'%}
   7 : 
   8 :              <!-- Javascript action-->
   9 :      {%include 'FrounterWeb/Lib-includes/JavaScript-action.html'%}
   10 : 
   11 :                 <!-- Libary of chart and gage  -->
   12 :         {%include 'FrounterWeb/Lib-includes/Gr aphs-files.ht ml'%}
   13 : 
   14 :         <link rel="shortcut icon" type="image/png" href="{% static 'FrounterWeb/img/Logo.png' %}">
   15 :         <title>Frounter-Agrotech monitoring</title>
   16 : 
   17 : 
   18 : 
   19 : 
   20 :     </head>
   21 : 
   22 : <body class="body" style="background-color:#f6f6f6">


Traceback:

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  156.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  154.                 response = response.render()

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\response.py" in render
  106.             self.content = self.rendered_content

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\response.py" in rendered_content
  83.         content = template.render(context, self._request)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\backends\django.py" in render
  61.             return self.template.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  171.                     return self._render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
  163.         return self.nodelist.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  937.                 bit = node.render_annotated(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
  904.             return self.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader_tags.py" in render
  150.             return compiled_parent._render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in _render
  163.         return self.nodelist.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  937.                 bit = node.render_annotated(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
  904.             return self.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
  309.                 return nodelist.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  937.                 bit = node.render_annotated(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
  904.             return self.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\loader_tags.py" in render
  62.                 result = block.nodelist.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render
  937.                 bit = node.render_annotated(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\base.py" in render_annotated
  904.             return self.render(context)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\template\defaulttags.py" in render
  442.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\base.py" in reverse
  90.     return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))

File "C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
  622.         raise NoReverseMatch(msg)

Exception Type: NoReverseMatch at /
Exception Value: Reverse for 'ph' with no arguments not found. 1 pattern(s) tried: ['(?P<answer>[^/]+)/ph\\-data/$'] 

Извините, я попросил кое-что так просто

Что я пробовал:

  1. попробуйте swtich to pk:

  2. попробуйте добавить в слаг или

Я перечитал эту ссылку: Django - получение ошибки "Обратный для детализации" без аргументов, не найден. 1 шаблон (s) пробовал: "при использовании {% url" music: fav "%}

Мои коды:

Код моих просмотров:

    try:
     class index(ListView):
     model = tank_system
     template_name = 'FrounterWeb/extends/includes.html'
     ordering = ['-datetime']

    def get_context_data(self,**kwargs):
        return{'tank':self.get_queryset()}
    #def get_queryset(self):
     #   return

     except:
   logger.error('index page request failed/errors')


 try:
class ph(ListView):
    model = tank_system
    template_name = 'FrounterWeb/extends/ph.html'
    context_object_name = tank_system
    ordering = ['-datetime'] # sort dates in descending order

    def post(self, request, answer):
        if request.method == 'POST':
            form = YourForm(request.POST)

            if form.is_valid():
                answer = form.cleaned_data['value']


    def get_context_data(self, **kwargs):
        #do a selection of which path to do 
        return{'tank': self.get_queryset()}

    except:
     logger.error('PH page Functions failed/errors')

Apps URlкоды:

        from django.urls import path
        from . import views #function views
        path(r'<str:answer>/ph-data/', login_required(views.ph.as_view()), name='ph'),

Мои коды HTML для ввода данных пользователем:

{%block Buttonbar%}

<div class="container-fluid">
    <div class="mx-auto">
      <nav class="navbar navbar-dark bg-primary">

          <div class = "container-fluid" >
          <form action="{% url 'zigview:ph-data' answer %}" method = "post">
<select class="custom-select" id="datetimefilter" name = "dropdown">
  <option selected="selected" disabled>Select:</option>
    <option value="Today">Today</option>
  <option value="Yestday">Yestday</option>
  <option value="ThWeek">This Week</option>
  <option value="PreWeek">Previous Week</option>
  <option value="ThMonths">This Months</option>
  <option value="PerMonths">Previous Month</option>
  <option value="Thisyear">This Year</option>
  <option value="Lastyear">Last Year</option>
    </select>
        {% csrf_token %}
        <input type="submit" value="post" name="submit-select">

          <div class="container-fluid">
  <a>Select Range Dates:<input  class="form-control" type="date"/> to <input  class="form-control" type="date"/></a>
  </div>

    </form>
            </div>
      </nav>
    </div>
</div>
{%endblock Buttonbar%}

Сводка результатов:

Я хочу иметь возможность взять переменную и, возможно, увидетьпока из консоли эта переменная будет передана в скрипт Python и будет использоваться для выбора данных, месяца и года, чтобы увидеть

1 Ответ

0 голосов
/ 24 декабря 2018

Похоже, ваша проблема в том, что answer не определено при отображении вашего шаблона (я не вижу его в каком-либо контексте).Если у вас есть значение в answer, вы сможете сделать следующее:

{% url 'zigview:ph-data' answer=answer %}

Обновление: OP не знал, как добавить answer в свой контекстный словарь, поэтому яЯ буду расширяться в этой части.Чтобы добавить дополнительные значения в ваш контекстный словарь, вы добавляете их в метод get_context_data представления вашего класса:

class ph(TemplateView):
    ...
    def get_context_data(self, **kwargs):
        # do a selection of which path to do 
        return {
            'tank': self.get_queryset(),
            'answer': 42,
        }
        # the answer that we use above will be used as the parameter to the url in the template.
...