【发布时间】:2021-04-07 20:30:49
【问题描述】:
我有一个问题,我不知道我是否使用了解决问题的好方法,但他们是问题所在,我有一个客户列表,我显示在客户页面上,通过一个简单的方式获取所有客户
clients = client.objects.all()
所以所有客户端都可以有很多会话,并且会话有很多客户端,它就像一个多对多关系,所以我尝试通过单击一个按钮(按钮打开一个 boostrap 模态),所以我尝试在单击时发送所选客户端的 id,并使用 ajax GET 方法将其发送到 django 视图中,并直接使用此 ID 查找与此客户端相关的所有会话并返回查询到这个页面,所以 ajax 工作正常,我可以发送 id,但它就像视图它没有发送任何东西。所以他们是我的代码希望你能帮助我:
Html(在 forloop 客户端上插入的 div):
<div class="list-group list-group-me">
<ul class="list-group list-group-horizontal">
<li class="list-group-item">{{ client.name }}</li>
<li class="list-group-item">{{ client.email }}</li>
<li class="list-group-item">{{ client.created_at | date:" M Y" }}</li>
<li class="list-group-item list-group-item-success">Active</li>
<li class="list-group-item">025f55azg5</li>
<li><div class="btn-group">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" id="AddSession"
data-id="{{ client.id }}">
Add
</button>
<button type="button" class="btn btn-primary" data-id="{{ client.id }}" >View</button>
</div>
</li>
</ul>
</div>
视图(尝试 .all() 只是为了看看它是否工作):
class show_session(View):
def get(self, request , id):
Sclient = session.objects.all()
#Sclient = session.objects.filter(client__id=id)
context = { 'Sclient': Sclient }
return render(request, 'coach/addclient.html', { 'Sclient': Sclient })
model.py:
class session(models.Model):
name = models.CharField(max_length=80)
client = models.ManyToManyField(client, blank=True)
coach = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
created_at = models.DateTimeField(auto_now_add=True)
detail = models.CharField(max_length=256)
def __str__(self):
return self.name
页面的主视图:
def addclient(request):
form = ClientForm
clients = client.objects.filter(affiliation=request.user.id)
Csession = session.objects.filter(coach=request.user.id)
context = {'form': form ,'clients': clients , 'Csession' : Csession}
form = ClientForm()
if request.method == 'POST':
form = ClientForm(request.POST)
print(form)
if form.is_valid():
print('adding client 1133', form)
name = request.POST.get('name')
email = request.POST.get('email')
new_client = client.objects.create(name= name, email=email , affiliation=request.user)
new_client.save()
return JsonResponse({'client': model_to_dict(new_client)}, status=200)
else:
print('not adding client to the form 1333')
return redirect('addclient')
return render(request, 'coach/addclient.html', context= context)
还有ajax函数:
$("#AddSession").click(function(){
var dataID = $(this).data('id');
console.log(dataID)
$.ajax({
url:'addclient/'+ dataID +'/added',
data: {
csrfmiddlewaretoken: csrfToken,
id: dataID
},
type : "get",
success: function(response) {
console.log("hey hey session over here");
}
})
});
我不知道是否可以只使用主视图来获取数据并显示它,当我尝试访问 show_session.view 的 url 时,查询集正在工作,但我仍在尝试在 addclient url 上显示它 感谢您的时间和帮助!
【问题讨论】: