如何解决从通过 AJAX 接收的查询集中访问外键对象
我在 Django 的 AJAX 请求中从我的 views.py 中请求一个查询集。使用的模型有一个与用户相关的外键字段。我无法访问这些外键元素。
我的 views.py 看起来像这样
@csrf_exempt
def replies(request):
if request.is_ajax and request.method == "POST":
cid = request.POST.get('cid',None)
data = {
'replies': serialize("json",Comment.objects.filter(replyTo=cid[1:]))
}
return JsonResponse(data)
我的模型 Comment
看起来像这样
class Comment(models.Model):
commenter = models.ForeignKey(User,on_delete=models.CASCADE)
cid = models.UUIDField(default=uuid.uuid4,editable=False)
commentText = models.TextField()
likes = models.ManyToManyField('User',related_name='likes')
commentOn = models.ForeignKey(Article,related_name='commentOn',on_delete=models.CASCADE,null=True,blank=True)
created_at = models.DateTimeField(default=timezone.Now)
replyTo = models.UUIDField(null=True,blank=True)
def __str__(self):
return f'{self.commenter.first_name + " [" + str(self.likes.count()) + "]"}'
我的ajax请求是这样的
$.ajax({
type: 'POST',url: '{% url 'replies' %}',data: {
'cid':id
},dataType: 'json',success: function (data) {
if (data.replies) {
var htmldata=""
var actual = JSON.parse(data.replies);
for(var x in actual){
htmldata+="<p>"+actual[x].fields.commentText+" "+actual[x].fields.commenter.first_name +" "+actual[x].fields.created_at+"</p>"
}
Box.html(htmldata);
}
}
});
上面的 actual[x].fields.commenter.first_name
应该给出由外键链接到用户的 commneter 的名字。
我得到类似 <my comment text> undefined <date time>
我知道为什么我用“未定义”代替用户名。
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。