Ich habe viele verwandte Fragen durchlaufen, aber ich bin nicht in der Lage, dieses Problem zu lösen, damit ich es schließlich posten werde, habe ich eine App "Kunden", die eine Liste von Kunden halten wird Derzeit gibt es zwei Benutzerebenen 1) Kunde - Wenn ich mich als Kunde einlogge, würde ich nur meine Daten sehen und meine Informationen ändern und ändern können. 2) Advisor - Wenn ich mich als Advisor anmelde, würde ich das tun Sehen Sie sich eine Kundenliste an und ich könnte Änderungen an jedem Kunden vornehmen. Um dies zu erreichen, habe ich eine Schaltfläche "Bearbeiten", wenn Sie darauf klicken, umgeleitet zu einem "Formular" mit den bestimmten Feldern bereits ausgefüllt, kann ich bearbeiten und speichern. Das Problem tritt auf, wenn ich auf "Bearbeiten" klicke. Ich erhalte den Fehler "NoReverseMatch at/customer /". Aber wenn ich direkt zu dem Formular navigiere, indem ich "localhost: 8000/customer/1/edit" eintippe, könnte ich das Formular sehen.Neuling - Python Django - NoReverseMatch Error
Hier ist meine views.py
@login_required
def customer_edit(request, cust_number):
# customer = get_object_or_404(Customer, pk=cust_number)
if request.method == "POST":
form = CustomerForm(request.POST)
# form = CustomerForm(request.CUSTOMER, instance=customer)
if form.is_valid():
customer = form.save(commit=False)
customer.cust_number = request.user
customer.updated_date = timezone.now()
customer.save()
return redirect('customer', pk=cust_number)
else:
form = CustomerForm()
return render(request, 'customers/customer_edit.html', {'form': form})
meine hier appname/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^customer/$', views.customer, name='customer'),
url(r'^home/$', views.home, name='home'),
url(r'^customer/(?P<cust_number>\d+)/edit/$', views.customer_edit, name='customer_edit'),
]
Hier ist ein Teil meiner Projektname/urls.py
url(r'', include('customers.urls', namespace="customers"))
meine Kunden hier /forms.py
from django import forms
from .models import Customer
class CustomerForm(forms.ModelForm):
class Meta:
model = Customer
fields = ('cust_number', 'name', 'address', 'city', 'state', 'zipcode', 'email', 'cell_phone',)
Hier ist meine customer_edit.html
{% extends 'customers/base.html' %}
{% block content %}
<h1>Edit Customer</h1>
<form method="POST" class="customer-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% endblock %}
Hier ist meine customer.html
{% extends 'customers/base.html' %}
{% block content %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Eagle Financial</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
<style>
body {
background-color: beige;
}
</style>
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-primary">
<div class="panel-heading">Welcome!</div>
<div class="panel-body">
Eagle Financial Services, your Midwest Financial Services Partner.
</div>
</div>
</div>
</div>
</div>
<div class="row">
<h2 style="padding-left: 15Px">Customer Information</h2>
</div>
<div>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr class="bg-info">
<th>Customer ID</th>
<th>Name</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Zip</th>
<th>Primary Email</th>
<th>Cell Phone</th>
<th colspan="3">Actions</th>
</tr>
</thead>
<tbody>
{% for customer in customers %}
<tr>
<td>{{ customer.cust_number }}</td>
<td>{{ customer.name }}</td>
<td>{{ customer.address }}</td>
<td>{{ customer.city }}</td>
<td>{{ customer.state }}</td>
<td>{{ customer.zipcode }}</td>
<td>{{ customer.email }}</td>
<td>{{ customer.cell_phone }}</td>
<td><a href="{% url 'customers:customer_edit' %}" class="btn btn-primary">Update</a></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</body>
</html>
{% endblock %}
Hier ist mein Fehler,
NoReverseMatch at /customer/
Reverse for 'customer_edit' with no arguments not found. 1 pattern(s) tried: ['customer/(?P<cust_number>\\d+)/edit/$']
Request Method: GET
Request URL: http://127.0.0.1:8000/customer/
Django Version: 1.11.1
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'customer_edit' with no arguments not found. 1 pattern(s) tried: ['customer/(?P<cust_number>\\d+)/edit/$']
I-Studie und Fehler von Namensräumen versucht haben, aber nicht in der Lage um das zu lösen. Bitte führen Sie mich. Vielen Dank.
ich Python bin mit - 3.6, Django - 1.11