Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django.url.exceptions.NoReverseMatch_Python_Django - Fatal编程技术网

Python django.url.exceptions.NoReverseMatch

Python django.url.exceptions.NoReverseMatch,python,django,Python,Django,我是Django的新手。在本规范中,“pembekal”指供应商。当我点击“New stok”按钮时,它将创建新书或其他新项目,但它给出如下错误: django.urls.exceptions.NoReverseMatch: Reverse for 'stok_create' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['books/(?P<pk>[0-9]+)/create/$'] vie

我是Django的新手。在本规范中,“pembekal”指供应商。当我点击“New stok”按钮时,它将创建新书或其他新项目,但它给出如下错误:

django.urls.exceptions.NoReverseMatch: Reverse for 'stok_create' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['books/(?P<pk>[0-9]+)/create/$']
views.py

from django.shortcuts import render, get_object_or_404
from django.http import JsonResponse
from django.template.loader import render_to_string
from django.urls import reverse
from .models import Pembekal
from .forms import PembekalForm, StokForm

def pembekal_list(request):
    pembekals = Pembekal.objects.all()
    return render(request, 'books/book_list.html', {'pembekals': pembekals})

def stok_list(request, pk):
    pembekal = Pembekal.objects.get(pk=pk)
    return render(request, 'books/stok_list.html', {'pembekal':pembekal})

def save_pembekal_form(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
            pembekals = Pembekal.objects.all()
            data['html_book_list'] = render_to_string('books/includes/partial_book_list.html', {'pembekals': pembekals})
        else:
            data['form_is_valid'] = False
    context = {'form': form}
    data['html_form'] = render_to_string(template_name, context, request=request)
    return JsonResponse(data)

def pembekal_create(request):
    if request.method == 'POST':
        form = PembekalForm(request.POST)
    else:
        form = PembekalForm()
    return save_pembekal_form(request, form, 'books/includes/partial_book_create.html')

def save_stok_form(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
            stoks = Stok.objects.all()
            data['html_book_list'] = render_to_string('books/includes/partial_stok_list.html', {'stoks': stoks})
        else:
            data['form_is_valid'] = False
    context = {'form': form}
    data['html_form'] = render_to_string(template_name, context, request=request)
    return JsonResponse(data)

def stok_create(request, pk):
    pembekal = get_object_or_404(Pembekal, pk=pk)
    if request.method == 'POST':
        form = StokForm(request.POST, instance=pembekal)
    else:
        form = StokForm(instance=pembekal)
    return save_stok_form(request, form, 'books/includes/partial_stok_create.html')

def pembekal_update(request, pk):
    pembekal = get_object_or_404(Pembekal, pk=pk)
    if request.method == 'POST':
        form = PembekalForm(request.POST, instance=pembekal)
    else:
        form = PembekalForm(instance=pembekal)
    return save_pembekal_form(request, form, 'books/includes/partial_book_update.html')

def pembekal_delete(request, pk):
    pembekal = get_object_or_404(Pembekal, pk=pk)
    data = dict()
    if request.method == 'POST':
        pembekal.delete()
        data['form_is_valid'] = True
        pembekals = Pembekal.objects.all()
        data['html_book_list'] = render_to_string('books/includes/partial_book_list.html',
        {'pembekals': pembekals})
    else:
        context = {'pembekal': pembekal}
        data['html_form'] = render_to_string('books/includes/partial_book_delete.html',
        context, request=request)
    return JsonResponse(data)
forms.py

from django import forms

from .models import Pembekal, Stok


class PembekalForm(forms.ModelForm):
    class Meta:
        model = Pembekal
        fields = ('pembekal', 'alamat', 'telefon',)

class StokForm(forms.ModelForm):
    class Meta:
        model = Stok
        fields = ('stok',)
url.py

    urlpatterns = [
        path('', TemplateView.as_view(template_name='home.html'), name='home'),
        path('books/', views.pembekal_list, name='book_list'),
        path('books/create/', views.pembekal_create, name='book_create'),
        path('books/<int:pk>/', views.stok_list, name='stok_list'),
        path('books/<int:pk>/update/', views.pembekal_update, name='book_update'),
        path('books/<int:pk>/delete/', views.pembekal_delete, name='book_delete'),
        path('books/<int:pk>/create/', views.stok_create, name='stok_create'),
        path('admin/', admin.site.urls),
]
urlpatterns=[
路径(“”,TemplateView.as_视图(template_name='home.html'),name='home'),
路径('books/',views.pembekal_list,name='book_list'),
路径('books/create/',views.pembekal_create,name='book_create'),
路径('books/',views.stok_list,name='stok_list'),
路径('books//update/',views.pembekal_update,name='book_update'),
路径('books//delete/',views.pembekal_delete,name='book_delete'),
路径('books//create/',views.stok_create,name='stok_create'),
路径('admin/',admin.site.url),
]
stok_list.html

{% extends 'base.html' %}

{% load static %}

{% block javascript %}
  <script src="{% static 'books/js/books.js' %}"></script>
{% endblock %}

{% block content %}        
  <div class="container">
    <ol class="breadcrumb my-4">
      <li class="breadcrumb-item"><a href="{% url 'book_list' %}">Pembekals</a></li>
      <li class="breadcrumb-item active">{{ pembekal.pembekal }}</li>
    </ol>
  </div>

  <p>
    <button type="button" class="btn btn-primary js-create-book" data-url="{% url 'stok_create' pk=pembekal.pk %}">
      <span class="glyphicon glyphicon-plus"></span>
      New stok
    </button>
  </p>

  <table class="table" id="book-table">
    <thead>
      <tr>
        <th>#</th>
        <th>Stok</th>
        <th></th>
      </tr>
    </thead>
    <tbody>
      {% include 'books/includes/partial_stok_list.html' %}
    </tbody>
  </table>

  <div class="modal fade" id="modal-book">
    <div class="modal-dialog">
      <div class="modal-content">

      </div>
    </div>
  </div>
{% endblock %}
{% for stok in pembekal.stoks.all %}
  <tr>
    <td>{{ stok.id }}</td>
    <td><a href="#">{{ stok.stok }}</a></td>
    <td style="width: 150px">
      <button type="button"
              class="btn btn-warning btn-sm js-update-book"
              data-url="#">
        <span class="glyphicon glyphicon-pencil"></span> Edit
      </button>
      <button type="button"
              class="btn btn-danger btn-sm js-delete-book"
              data-url="#">
        <span class="glyphicon glyphicon-trash"></span> Delete
      </button>
    </td>
  </tr>
{% empty %}
  <tr>
    <td colspan="8" class="text-center bg-warning">No book</td>
  </tr>
{% endfor %}
{%extends'base.html%}
{%load static%}
{%block javascript%}
{%endblock%}
{%block content%}
  • {{pembekal.pembekal}
  • 新斯托克

    # 斯托克 {%include'books/includes/partial\u stok\u list.html%} {%endblock%}
    partial_stok_create.html

    <form method="post" action="{% url 'stok_create' pk=pembekal.pk %}" class="js-book-create-form">
      {% csrf_token %}
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
        <h4 class="modal-title">Create a new stok</h4>
      </div>
      <div class="modal-body">
        {% include 'books/includes/partial_stok_form.html' %}
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="submit" class="btn btn-primary">Create stok</button>
      </div>
    </form>
    
    
    {%csrf_令牌%}
    &时代;
    创建一个新stok
    {%include'books/includes/partial_stok_form.html%}
    接近
    创造斯托克
    
    partial_stok_form.html

    {% load widget_tweaks %}
    
    {% for field in form %}
      <div class="form-group{% if field.errors %} has-error{% endif %}">
        <label for="{{ field.id_for_label }}">{{ field.label }}</label>
        {% render_field field class="form-control" %}
        {% for error in field.errors %}
          <p class="help-block">{{ error }}</p>
        {% endfor %}
      </div>
    {% endfor %}
    
    {%load widget\u tweaks%}
    {%形式的字段为%}
    {{field.label}
    {%render_field class=“form control”%}
    {%字段中有错误。错误%}
    

    {{error}

    {%endfor%} {%endfor%}
    partial_stok_list.html

    {% extends 'base.html' %}
    
    {% load static %}
    
    {% block javascript %}
      <script src="{% static 'books/js/books.js' %}"></script>
    {% endblock %}
    
    {% block content %}        
      <div class="container">
        <ol class="breadcrumb my-4">
          <li class="breadcrumb-item"><a href="{% url 'book_list' %}">Pembekals</a></li>
          <li class="breadcrumb-item active">{{ pembekal.pembekal }}</li>
        </ol>
      </div>
    
      <p>
        <button type="button" class="btn btn-primary js-create-book" data-url="{% url 'stok_create' pk=pembekal.pk %}">
          <span class="glyphicon glyphicon-plus"></span>
          New stok
        </button>
      </p>
    
      <table class="table" id="book-table">
        <thead>
          <tr>
            <th>#</th>
            <th>Stok</th>
            <th></th>
          </tr>
        </thead>
        <tbody>
          {% include 'books/includes/partial_stok_list.html' %}
        </tbody>
      </table>
    
      <div class="modal fade" id="modal-book">
        <div class="modal-dialog">
          <div class="modal-content">
    
          </div>
        </div>
      </div>
    {% endblock %}
    
    {% for stok in pembekal.stoks.all %}
      <tr>
        <td>{{ stok.id }}</td>
        <td><a href="#">{{ stok.stok }}</a></td>
        <td style="width: 150px">
          <button type="button"
                  class="btn btn-warning btn-sm js-update-book"
                  data-url="#">
            <span class="glyphicon glyphicon-pencil"></span> Edit
          </button>
          <button type="button"
                  class="btn btn-danger btn-sm js-delete-book"
                  data-url="#">
            <span class="glyphicon glyphicon-trash"></span> Delete
          </button>
        </td>
      </tr>
    {% empty %}
      <tr>
        <td colspan="8" class="text-center bg-warning">No book</td>
      </tr>
    {% endfor %}
    
    {%用于pembekal.stoks.all%中的stok}
    {{stok.id}
    编辑
    删除
    {%empty%}
    没有书
    {%endfor%}
    

    这就是我目前使用的所有文件。非常感谢您的帮助。我正在使用Ajax渲染到CRUD应用程序。由于出现上述消息,模态窗体不会弹出。多个文件中可能有错误。请纠正我。谢谢

    为呈现
    stok_list.html
    的视图显示代码。似乎没有将
    pembekal
    值传递到模板上下文中。模板的其余部分和呈现它的视图在哪里?我们需要知道此时的
    pembekal
    是什么,知道为什么它有一个空的
    pk
    。显示呈现
    stok_list.html
    的视图的代码。似乎没有将
    pembekal
    值传递到模板上下文中。模板的其余部分和呈现它的视图在哪里?我们需要知道pembekal在这一点上是什么,知道为什么它有一个空的
    pk