gpt4 book ai didi

javascript - 在 Django 中单击时使用项目详细信息更新页面

转载 作者:行者123 更新时间:2023-11-29 21:08:33 26 4
gpt4 key购买 nike

我是 ajax 的新手,我知道我需要使用它来完成我想做的事情,但似乎无法弄清楚。

我有一个公司列表,我想在点击表格行时在页面上显示有关公司的详细信息。当用户单击不同的行时,我希望详细信息更改为所单击的新公司的详细信息。

HTML:

{% block content %}
<div class='container'>
<h3>Hello, </h3>
</div>
<div class='col-md-6'>
<div class='panel panel-primary'>
<div class='panel-heading'>
<h3 class='panel-title'>Call List</h3>
</div>
<div class='panel-body' style="max-height: 70em ;overflow-y: scroll;">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Company Name</th>
<th>Other Information</th>
</tr>
</thead>
<tbody>
{% for item in companies %}
<tr onclick='UpdatePKFunction({{ item.pk }})'>
<td>{{ item.CompanyName }}</td>
<td>{{ item.LineOfBusiness }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<script>
function UpdatePKFunction(pk) {
pk = pk
$.ajax({
url: '/updateDetails',
success: function(pk) {
$('#DetailView').html(pk);
}
});
};
</script>
<div class='col-md-4'>
<div class='panel panel-info'>
<div class='panel-heading'>
<h3 class='panel-title'>Company Information</h3>
</div>
<div class='panel-body' id='DetailView'>
</div>
</div>
</div>
{% endblock %}

我要插入的内容:

{% for item in companies %}
{% if item.pk == pk %}
<td>
<tr>item.CompanyName</tr>
</td>
{% endif %}
{% endfor %}

View .py

from django.shortcuts import render
from django.http import HttpResponse

from mainlist.models import hoovers_companies

# Create your views here.
def index(request):
companies = hoovers_companies.objects.all()
company = hoovers_companies.objects
return render(request, 'mainlist/index.html', {'companies': companies, 'company': company})

def updateDetails(request):
companies = hoovers_companies.objects.all()
return render(request, 'mainlist/updateDetails.html', {'companies': companies, 'pk': 1})

网址.py

from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^updateDetails', views.updateDetails, name='updateDetails'),
url(r'^$', views.index, name='index'),
]

任何帮助或指出正确的方向将不胜感激!

最佳答案

我能够找出我的问题的答案,并想将其张贴在这里以防对任何人有帮助。

*请注意:请勿将此方法用于任何敏感或私有(private)信息。这是一个简单的 GET 请求,所有信息都可以在 URL 中看到。

首先,在我想要显示信息的模板中,我将点击项目的主键传递给了我的函数。

<ELEMENT onclick='UpdatePKFunction({{ item.pk }})'>

然后我将这个函数放在我的模板中。 #DetailView 引用我要放置动态内容的空 div 的 ID。这允许我将所选项目的主键作为 URL 参数传递给 View 。

<script>
function UpdatePKFunction(pk) {
pk = pk
$.ajax({
url: 'updateDetails/' + pk,
success: function(data) {
$('#DetailView').html(data);
}
});
};
</script>

请参阅下面的 urls.py 文件,了解它如何捕获主键 (pk) 并将其传递给 views.py。它从 views.py 传递给模板。

# urls.py

urlpatterns = [
url(r'^updateDetails/(?P<pk>.+?)/$', views.updateDetails, name='updateDetails'),
url(r'^$', views.index, name='index'),
]


# views.py

def updateDetails(request, pk):
company = companies.objects.get(pk=pk)
return render(request, 'mainlist/updateDetails.html', {'company': company, 'pk': pk})

完成此操作后,只需创建一个新模板,在您开始使用的空 div 中包含您想要的任何 html。我这里的模板是 mainlist/updateDetails.html

关于javascript - 在 Django 中单击时使用项目详细信息更新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42771828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com