【发布时间】:2021-12-26 08:48:57
【问题描述】:
这是我的项目代码,我只是得到了这个错误,我试图弄清楚但我不明白,
Django 错误:
DoesNotExist 在 /save_post/
配置文件匹配查询不存在。
views.py,第 75 行,在 save_post 中 form.authore = Profile.objects.get(user=request.user)
views.py
@login_required
def save_post(request):
if request.method == "POST":
form = Post(content=request.POST['content'])
form.authore = Profile.objects.get(user=request.user)
form.save()
elif request.method == "PUT":
data = json.loads(request.body)
post_id = int(data["post_id"])
new_content = data["new_content"]
post = Post.objects.filter(id=post_id).first()
if post.authore.user != request.user:
return HttpResponse(status=401)
post.content = new_content
post.save()
return JsonResponse({
"result": True
}, status=200)
else:
return JsonResponse({
"error": "post not found"
}, status=400)
return index(request)
models.py
class User(AbstractUser):
pass
class Profile(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Post(models.Model):
content = models.TextField()
timestamp = models.DateTimeField(default=timezone.now)
authore = models.ForeignKey(Profile, on_delete=models.CASCADE)
likes = models.PositiveIntegerField(default=0, blank=True, null=True)
def serialize(self):
return {
"id": self.id,
"content": self.content,
"timestamp": self.timestamp.strftime("%b %#d %Y, %#I:%M %p"),
"authore": self.authore.id,
"username": self.authore.user.username,
"likes": self.likes.count(),
}
【问题讨论】:
-
它说
Profile matching query does not exist,这意味着给定的user没有Profile对象。 -
@Selcuk 有一个 Profile 类
-
我尝试添加
def serialize(self, user): return { "profile_id": self.user.id, "profile_username": self.user.username },但我还没有解决错误 -
没有
Profile对象给定用户。..._profile数据库表中没有这样的行 -
@Selcuk 我不明白!我怎么没有配置文件对象我有配置文件和模型的 URL?
标签: python django django-models