Python 在Django中以html模式加载动态数据

Python 在Django中以html模式加载动态数据,python,html,css,django,django-views,Python,Html,Css,Django,Django Views,我在Django中有一个带有数据库动态图像的html页面。 我也有一个模式在同一页设置为不可见,并打开时,图像被点击 我的意图是,当我单击任何图像时,它应该打开一个html模型,其中包含单击的图像和数据库中的描述文本 如何显示当前单击图像的数据及其说明。 我试图传递{{profile.image.url},但这提供了一个点击所有图像的信息 我不必给出这方面的示例代码。关于如何实现这一点,有两个选项: 使用django呈现所有图像的模态,并在用户单击其中一个图像时打开它们 创建1个模式并编写一些j

我在Django中有一个带有数据库动态图像的html页面。 我也有一个模式在同一页设置为不可见,并打开时,图像被点击

我的意图是,当我单击任何图像时,它应该打开一个html模型,其中包含单击的图像和数据库中的描述文本

如何显示当前单击图像的数据及其说明。 我试图传递
{{profile.image.url}
,但这提供了一个点击所有图像的信息


我不必给出这方面的示例代码。

关于如何实现这一点,有两个选项:

  • 使用django呈现所有图像的模态,并在用户单击其中一个图像时打开它们
  • 创建1个模式并编写一些javascript来获取背景中单击图像的相关信息。注意,您还需要在Django中创建一个端点,该端点将接受图像ID并返回图像信息

  • 可以通过使用AJAX请求传递要检索的对象的id来实现这一点

    假设这是您的HTML表

    <table class="table">
      <thead>
        <tr>
          <th>Id</th>
          <th>Title</th>
          <th>Date</th>
          <th>Status</th>
          <th>Actions</th>
        </tr>
      </thead>
    
      <tbody>
        {% for incident in page_obj %}
          <tr>
            <td>{{ incident.id }}</td>
            <td>{{ incident.title }}</td>
            <td>{{ incident.created }}</td>
            <td>
              <span class="badge badge-pill badge-success">{{ incident.get_status_display }}</span>
            </td>
            <td>
              <button class="btn btn-sm btn-outline-info" onclick="populateForm('{{ incident.id }}')" data-toggle="modal" data-target="#incidentModal">Edit</button>
            </td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
    
    views.py

    from django.core import serializers
    from django.http import JsonResponse, Http404
    from django.views.generic import UpdateView
    from incidents.models import Incident
    from incidents.forms import IncidentForm
    
    
    class IncidentUpdateView(UpdateView):
        form_class = IncidentForm
        model = Incident
    
        def get_success_url(self):
            return reverse('incidents:list')
    
        def get(self, request, pk):
            if request.is_ajax():
                incident = get_object_or_404(Incident, pk=pk)
                response = serializers.serialize("json", [incident])
                return JsonResponse(response, safe=False)
            raise Http404('Page not found')
    

    你好回答得好!我有同样的问题。我有一个用户网格,每个用户都有一个删除按钮。当按下此按钮时,我想打开一个模式,说“你确定要删除用户”用户名吗?因此,当确认我要删除用户时。我无法使用ajax将选定用户“存储”到网格中并将其传递给modal withous?谢谢嘿,很抱歉回复太晚了。您可以将javascript函数附加到按钮的onclick方法,并将用户id作为参数传递给它。在该函数中,您可以使用用户id设置删除表单的操作。因此,每当用户单击“删除”按钮时,该函数将更改表单的操作并显示一个模式,确认后将提交表单,最终导致用户被删除。希望能有帮助。
    from django.core import serializers
    from django.http import JsonResponse, Http404
    from django.views.generic import UpdateView
    from incidents.models import Incident
    from incidents.forms import IncidentForm
    
    
    class IncidentUpdateView(UpdateView):
        form_class = IncidentForm
        model = Incident
    
        def get_success_url(self):
            return reverse('incidents:list')
    
        def get(self, request, pk):
            if request.is_ajax():
                incident = get_object_or_404(Incident, pk=pk)
                response = serializers.serialize("json", [incident])
                return JsonResponse(response, safe=False)
            raise Http404('Page not found')