я пытался django модальные формы. я создаю модель под названием «устройства», у меня работает одно представление, которое заставляет загрузку формы устройства на странице индексного устройства. После этого создал другую модель под названием «Клиенты», сделал формы и просмотр для нее, но, когда я загружаю файлы из URL, он загружает только первую форму, которая является устройствами, а не клиентом. поэтому, когда я нажимаю кнопку создания клиента; модель устройства загружается в форму, и если сначала указать в моем URL путь клиента, он загружается нормально, но с помощью кнопки «создать устройство» в html устройства; форма загружается с модальной формой клиента
это путь Fil
примеры / URL
from django.urls import path
from . import views
from examples.views import login_view,register_view,logout_view
urlpatterns = [
path('', views.Home.as_view(), name='home'),
path('home/', views.Home.as_view(), name='home'),
# Device URL
path('device', views.DeviceIndex.as_view(), name='indexDevice'),
path('create/', views.DeviceCreateView.as_view(), name='create_device'),
path('update/<int:pk>', views.DeviceUpdateView.as_view(), name='update_device'),
path('read/<int:pk>', views.DeviceReadView.as_view(), name='read_device'),
path('delete/<int:pk>', views.DeviceDeleteView.as_view(), name='delete_device'),
# Customer URL
path('customer', views.CustomerIndex.as_view(), name='indexCustomer'),
path('create/', views.CustomerCreateView.as_view(), name='create_customer'),
path('update/<int:pk>', views.CustomerUpdateView.as_view(), name='update_customer'),
path('read/<int:pk>', views.CustomerReadView.as_view(), name='read_customer'),
path('delete/<int:pk>', views.CustomerDeleteView.as_view(), name='delete_customer'),
настройка / URL
from django.conf.urls import include
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
path('', include('examples.urls')),
]
indexCusctomer
{% extends 'base.html' %}
{% block content %}
{% include "_modal.html" %}
<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<div class="container mt-3">
-->
{% include 'navbar.html' %}
<center>
<h2>
<strong style="color: #c2c1c1;">Customers</strong>
</h2>
</center>
<div class="row">
<div class="col-12 mb-3">
<button class="create-customer work" type="button" name="button">
<span class="fa fa-plus mr-2"></span>Create Customer</button>
</div>
<div class="col-12 mb-3">
{% if customers %}
<table class="table">
<thead class="thstyle">
<tr>
<th class="text-center" scope="col">#</th>
<th class="text-center" scope="col">Name</th>
<th class="text-center" scope="col">Email</th>
<th class="text-center" scope="col">Contact</th>
<th class="text-center" scope="col">User Name</th>
<th class="text-center" scope="col">State</th>
<th class="text-center" scope="col">City</th>
<th class="text-center" scope="col">Read / Update / Delete</th>
</tr>
</thead>
<tbody>
{% for customer in customers %}
<tr class="trstyle">
<th class="text-center" scope="row">{{ forloop.counter }}</th>
<td class="text-center">{{ customer.customer_name }}</td>
<td class="text-center">{{ customer.email }}</td>
<td class="text-center">{{ customer.contact }}</td>
<td class="text-center">{{ customer.users_name }}</td>
<td class="text-center">{{ customer.get_state_type_display }}</td>
<td class="text-center">{{ customer.get_city_type_display }}</td>
<td class="text-center">
<button type="button" class="read-customer btn btn-sm btn-primary"
data-id="{% url 'read_customer' customer.pk %}">
<span class="fa fa-eye"></span>
</button>
<button type="button" class="update-customer btn btn-sm btn-primary"
data-id="{% url 'update_customer' customer.pk %}">
<span class="fa fa-pencil"></span>
</button>
<button type="button" class="delete-customer btn btn-sm btn-danger"
data-id="{% url 'delete_customer' customer.pk %}">
<span class="fa fa-trash"></span>
</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p class="no-customers text-primary">No customer added yet.</p>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock content %}
{% block extrascripts %}
<script type="text/javascript">
$(function () {
// Create book button
$(".create-customer").modalForm({ formURL: "{% url 'create_customer' %}", modalID: "#create-modal" });
// Update book buttons
$(".update-customer").each(function () {
$(this).modalForm({ formURL: $(this).data('id') });
});
// Read book buttons
$(".read-customer").each(function () {
$(this).modalForm({ formURL: $(this).data('id') });
});
// Delete book buttons
$(".delete-customer").each(function () {
$(this).modalForm({ formURL: $(this).data('id') });
})
// Hide message
$(".alert").fadeTo(2000, 500).slideUp(500, function () {
$(".alert").slideUp(500);
});
});
function openNav() {
document.getElementById("mySidenav").style.width = "200px";
document.getElementById("main").style.marginLeft = "200px";
document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
document.getElementById("main").style.marginLeft = "0";
document.body.style.backgroundColor = "#2a3747";
}
</script>
{% endblock extrascripts %}
</html>
indexDevice
{% extends 'base.html' %}
{% block content %}
{% include "_modal.html" %}
<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<div class="container mt-3">
{% include 'navbar.html' %}
<center>
<h2>
<strong style="color: #c2c1c1;">DEVICES</strong>
</h2>
</center>
<div class="row">
<div class="col-12 mb-3">
<button class="create-device work" type="button" name="button">
<span class="fa fa-plus mr-2"></span>Create device</button>
</div>
<div class="col-12 mb-3">
{% if devices %}
<table class="table">
<thead class="thstyle">
<tr>
<th class="text-center" scope="col">#</th>
<th class="text-center" scope="col">Name</th>
<th class="text-center" scope="col">IP Address</th>
<th class="text-center" scope="col">Type</th>
<th class="text-center" scope="col">Publication date</th>
<th class="text-center" scope="col">Read / Update / Delete</th>
</tr>
</thead>
<tbody>
{% for device in devices %}
<tr class="trstyle">
<th class="text-center" scope="row">{{ forloop.counter }}</th>
<td class="text-center">{{ device.device_name }}</td>
<td class="text-center">{{ device.IP_address }}</td>
<td class="text-center">{{ device.get_device_type_display }}</td>
<td class="text-center">{{ device.publication_date }}</td>
<td class="text-center">
<button type="button" class="read-device btn btn-sm btn-primary"
data-id="{% url 'read_device' device.pk %}">
<span class="fa fa-eye"></span>
</button>
<button type="button" class="update-device btn btn-sm btn-primary"
data-id="{% url 'update_device' device.pk %}">
<span class="fa fa-pencil"></span>
</button>
<button type="button" class="delete-device btn btn-sm btn-danger"
data-id="{% url 'delete_device' device.pk %}">
<span class="fa fa-trash"></span>
</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p class="no-devices text-primary">No devices added yet.</p>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock content %}
{% block extrascripts %}
<script type="text/javascript">
$(function () {
// Create book button
$(".create-device").modalForm({ formURL: "{% url 'create_device' %}", modalID: "#create-modal" });
// Update book buttons
$(".update-device").each(function () {
$(this).modalForm({ formURL: $(this).data('id') });
});
// Read book buttons
$(".read-device").each(function () {
$(this).modalForm({ formURL: $(this).data('id') });
});
// Delete book buttons
$(".delete-device").each(function () {
$(this).modalForm({ formURL: $(this).data('id') });
})
// Hide message
$(".alert").fadeTo(2000, 500).slideUp(500, function () {
$(".alert").slideUp(500);
});
});
function openNav() {
document.getElementById("mySidenav").style.width = "200px";
document.getElementById("main").style.marginLeft = "200px";
document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
document.getElementById("main").style.marginLeft = "0";
document.body.style.backgroundColor = "#2a3747";
}
</script>
{% endblock extrascripts %}
</html>
examples / view.py
from django.urls import reverse_lazy
from django.shortcuts import render, redirect
from django.views import generic
from bootstrap_modal_forms.generic import (BSModalCreateView,
BSModalUpdateView,
BSModalReadView,
BSModalDeleteView,
BSModalLoginView)
from .forms import UserLoginForm,UserRegisterForm
from .forms import DeviceForm,CustomerForm
from .models import Device,Customer
from django.contrib.auth.models import User
from django.contrib.auth import (authenticate, get_user_model, login, logout)
class Home(generic.ListView):
context_object_name = 'title'
template_name = 'home.html'
def get_queryset(self):
return 'WELCOME TO MANNAI COMMAND CENTER'
# view Device
class DeviceIndex(generic.ListView):
model = Device
context_object_name = 'devices'
template_name = 'indexDevice.html'
class DeviceCreateView(BSModalCreateView):
template_name = 'devices/create_device.html'
form_class = DeviceForm
success_message = 'Success: Device was created.'
success_url = reverse_lazy('indexDevice')
class DeviceUpdateView(BSModalUpdateView):
model = Device
template_name = 'devices/update_device.html'
form_class = DeviceForm
success_message = 'Success: Device was updated.'
success_url = reverse_lazy('indexDevice')
class DeviceReadView(BSModalReadView):
model = Device
template_name = 'devices/read_device.html'
class DeviceDeleteView(BSModalDeleteView):
model = Device
template_name = 'devices/delete_device.html'
success_message = 'Success: Device was deleted.'
success_url = reverse_lazy('indexDevice')
# view customer
class CustomerIndex(generic.ListView):
model = Customer
context_object_name = 'customers'
template_name = 'indexCustomer.html'
class CustomerCreateView(BSModalCreateView):
template_name = 'customers/create_customer.html'
form_class = CustomerForm
success_message = 'Success: Customer was created.'
success_url = reverse_lazy('indexCustomer')
class CustomerUpdateView(BSModalUpdateView):
model = Customer
template_name = 'customers/update_customer.html'
form_class = CustomerForm
success_message = 'Success: Customer was updated.'
success_url = reverse_lazy('indexCustomer')
class CustomerReadView(BSModalReadView):
model = Customer
template_name = 'customers/read_customer.html'
class CustomerDeleteView(BSModalDeleteView):
model = Customer
template_name = 'customers/delete_customer.html'
success_message = 'Success: Customer was deleted.'
success_url = reverse_lazy('indexCustomer')
def login_view(request):
next = request.GET.get('next')
form = UserLoginForm(request.POST or None)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
login(request, user)
if next:
return redirect(next)
return redirect('/index')
context = {
'form': form,
}
return render(request, "authentication/login.html", context)
def register_view(request):
next = request.GET.get('next')
form = UserRegisterForm(request.POST or None)
if form.is_valid():
user = form.save(commit=False)
password = form.cleaned_data.get('password')
user.set_password(password)
user.save()
new_user = authenticate(username=user.username, password=password)
login(request, new_user)
if next:
return redirect(next)
return redirect('/login/')
context = {
'form': form,
}
return render(request, "authentication/signup.html", context)
def logout_view(request):
logout(request)
return redirect('/home/')