gpt4 book ai didi

jquery - Django通过ajax get在模板中渲染字典对象

转载 作者:行者123 更新时间:2023-12-01 05:16:15 26 4
gpt4 key购买 nike

嘿,大家好,我正在尝试弄清楚如何通过 ajax 执行 GET 请求来返回一个字典对象,我可以使用 Django 的模板标签来迭代并显示结果。我似乎无法弄清楚这一点。任何帮助是极大的赞赏。谢谢。

Ajax/html:

        $("#{{fabCatagory.categoryId}}btn").click(function(){

$.ajax({

type: 'GET',
url: '/companion/topic/{{fabCatagory}}/',

success: function(result){
console.log(result['topics'])
},
});
});





<div id="{{fabCatagory.categoryId}}" class="panel-collapse collapse">
<div class="panel-body">

<div class="list-group">
{%for fabCatagory in topics %}

<a id="{{ fabCatagory.topicId }}" class="list-group-item">{{ fabCatagory.topic }}</a>

{% endfor %}
</div>
</div>
</div>

查看:

@render_to ('companion/companionSub.html')
def topic(request, id):

ids = Catagories.objects.get(catagory=id)
topics = Topics.objects.filter(fabCatagory_id=ids.id).all()
topic_list = {'topics':topics}
return HttpResponse({'topics':topics})

更新:::添加模型。

from django.db import models
from embed_video.fields import EmbedVideoField
from imagekit.models import ProcessedImageField
from imagekit.processors import ResizeToFill

class Catagories(models.Model):
catagory = models.CharField(max_length=128)
categoryId = models.CharField(max_length=128)
def __unicode__(self):
return self.catagory

class Topics(models.Model):
fabCatagory = models.ForeignKey(Catagories)
topic = models.CharField(max_length=128)
topicId = models.CharField(max_length=128)
def __unicode__(self):
return self.topic

class Fabrics(models.Model):
fabTopic = models.ForeignKey(Topics)
fabName = models.CharField(max_length=128)
fabContent = models.CharField(max_length=128, blank=True)
fabWeave = models.CharField(max_length=128, blank=True)
fabDye = models.CharField(max_length=128, blank=True)
fabFinish = models.CharField(max_length=128, blank=True)
fabDescription = models.CharField(max_length=8192)
fabImage = ProcessedImageField(upload_to='avatars',
processors=[ResizeToFill(250, 185)],
format='JPEG',
options={'quality': 60},blank=True)
fabImage_secondary = ProcessedImageField(upload_to='avatars',
processors=[ResizeToFill(500, 370)],
format='JPEG',
options={'quality': 60},blank=True)
fabVideo = EmbedVideoField(blank=True)
fabVideoURL = models.URLField(blank=True)
isPremium = models.BooleanField(default=False)
def __unicode__(self):
return self.fabName

最佳答案

您需要返回一个 json 对象以便 jQuery 理解。

试试这个:

import json
from django.forms.models import model_to_dict

@render_to ('companion/companionSub.html')
def topic(request, id):

ids = Catagories.objects.get(catagory=id)

topics = [model_to_dict(topic) for topic in Topics.objects.filter(fabCatagory_id=ids.id)]
topic_list = json.dumps({'topics':topics})

return HttpResponse(topics_list)

关于jquery - Django通过ajax get在模板中渲染字典对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174123/

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