当我运行以下代码时,它在“ post_connected”处显示“ DosNotExist”错误。
这是我的views.py
from django.shortcuts import render,redirect
from django.contrib.auth.decorators import login_required
from users.models import profile
from .models import Follow, post, like_post
from django.contrib.auth.models import User
from django.core.paginator import Paginator
def home(request):
user = request.user
info = profile.objects.get(user=user)
follow1 = Follow.objects.filter(follow_user=user)
follow2 = Follow.objects.filter(user=user)
follow_by = follow1.count()
follow_to = follow2.count()
follows = [user]
for obj in follow2:
follows.append(obj.follow_user)
posts = post.objects.filter(author__in=follows).order_by('-date')
paginator = Paginator(posts, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
count = posts.count()
postid = request.POST.get('post_id')
post_connected = post.objects.get(id=postid)
mypost = like_post.objects.filter(user=user, liked=post_connected)
if mypost.exists():
liked = False
else:
liked = True
context = {
'user':user,
'liked':liked,
'post':posts,
'page_obj': page_obj,
'follow_by':follow_by,
'follow_to':follow_to,
}
return render(request, 'home.html', context)
现在,这是我的模板视图
{% for posts in page_obj %}
<div class="posts">
<img src="{% static 'logo.png' %}" style="width: 17px; height:14px;">
<a href="/users/user/{{posts.author}}/" class="username" style="font-size:18px;">{{posts.author}}</a><br><br>
<span style="font-weight:bold; font-size:17px;">{{posts.content}}</span><br><br>
<form action="/like/{{posts.id}}/" method="POST">
{% csrf_token %}
<input type="text" value="{{posts.id}}" name="post_id" style="display: none;">
<button style="background-color: inherit; border:none; outline:none">
{% if liked %}
<i class="fa fa-heart" aria-hidden="true" style="color: red;"></i>
{% else %}
<i class="fa fa-heart" aria-hidden="true" style="color: lightgrey;"></i>
{% endif %}
</button>
<span style="font-size:12px; float:right"><b>Posted on:</b> {{posts.date | date:"H:i D, d M"}}</span>
</form>
</div>
<br>
{% endfor %}
我认为服务器无法从输入框中获取值。我不知道我做错了什么。请帮我。谢谢
答案 0 :(得分:0)
看起来像那一行
post_connected = post.objects.get(id=postid)
您有一个名为post的模型。在运行代码之前,请确保已将模型导入到views.py并已迁移模型。
如果完成,请确保正在使用.get()调用存在的条目。根据文档,
如果没有与查询匹配的结果,则get()将引发一个 DidNotExist异常。此异常是模型的属性 在其上执行查询的类。
答案 1 :(得分:0)
在for循环中有许多与输入框具有相同ID的输入框。因此,它获得了多个值,却没有任何反应。