【发布时间】:2020-12-05 06:35:27
【问题描述】:
我正在使用 Django 和 JavaScript 构建一个应用程序。在 Java 中,我有一个如下所示的函数:
fetch('/posts')
.then(response => response.json())
.then(posts => {
JavaScript 代码的第一行实际上调用了我的 .views 中的“post_list”函数
from django.contrib.auth.decorators import login_required
from django.http import JsonResponse
from .models import Post
@login_required
def post_list(request):
posts = Post.objects.filter(username=request.user)
posts = posts.order_by("-timestamp").all()
return JsonResponse([p.serialize() for p in posts], safe=False)
但是程序在最后一行崩溃(当我尝试返回 JsonResponse 时)并且我收到 500 Internal Server Error。结果,我没有收到响应,并且我的 JavaScript .then(response ..... 行没有运行。
我不确定这是否与回答问题相关,但我的模型如下所示:
from django.db import models
from django.contrib.auth import get_user_model
User = get_user_model()
class Post(models.Model):
username = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user")
post = models.CharField(max_length=365)
like = models.PositiveIntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.username} posted {self.post} the {self.timestamp}, and the post has {self.like} likes"
def serialize(self):
return {
"id": self.id,
"username":self.username,
"post": self.post,
"like": self.like,
"timestamp": self.timestamp.strftime("%b %d %Y, %I:%M %p"),
}
那么,有人知道为什么我会收到 500 内部服务器错误吗?
【问题讨论】:
-
我遇到了一个完全不同的错误。我从正确的位置导入了 JsonResponse。你有不同的导入吗?
标签: javascript django jsonresponse