Здравствуйте, как я могу загрузить два пути с различными django модальными формами? - PullRequest
1 голос
/ 11 января 2020

я пытался 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/')

1 Ответ

0 голосов
/ 11 января 2020
path('device/', views.DeviceIndex.as_view(), name='indexDevice'),
path('update/<int:pk>/', views.DeviceUpdateView.as_view(), name='update_device'),

добавьте в свои URL завершающий sla sh, где бы его не было.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...