python - Django:'str'对象没有属性'get'
问题描述
我试图有效地制作一个 Reddit 克隆,只是为了练习 Django,我试图用一个简单的整数设置我的 upvote/downvote 系统(upvote 加一,downvote 减一)但是当我点击我的“upvote”或“ downvote”按钮它给了我错误'str' object has no attribute 'get'
。我不知道是什么原因造成的,并且与此错误有关的所有其他答案都完全不相关,任何帮助都会很棒。完整追溯:
Traceback (most recent call last):
File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\deprecation.py", line 116, in __call__
response = self.process_response(request, response)
File "C:\Users\Andre\AppData\Local\Programs\Python\Python37\lib\site-packages\django\middleware\clickjacking.py", line 26, in process_response
if response.get('X-Frame-Options') is not None:
AttributeError: 'str' object has no attribute 'get'
我的模型:
class post(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
ranking = models.IntegerField(default=0)
我的观点:
class Feed(ListView):
model = post
template_name = 'thefeed/feed.html'
def UpvoteView(request, pk):
selected_post = post.objects.get(pk=pk)
selected_post.ranking+=1
selected_post.save()
return reverse('feed-home')
def DownvoteView(request, pk):
selected_post = post.objects.get(pk=pk)
selected_post.ranking-=1
selected_post.save()
return reverse('feed-home')
我的网址:
urlpatterns = [
path('', views.Feed.as_view(), name="feed-home"),
path('post/<int:pk>/downvote', views.DownvoteView, name='downvote-post'),
path('post/<int:pk>/upvote', views.DownvoteView, name='upvote-post'),
]
我的 Feed.html(主页):
{% block content %}
<div class="announcement">
<h5 style="background: yellow;">Forum.Chat is the Internet's home for debate on any topic, keep it civil!</h5>
</div>
<br>
{% for post in object_list %}
<div style="margin-bottom: 2%;">
<h3><a href="{% url 'feed-post' post.pk %}">{{post.title}}</a><a href="#"></h3>
<p><a href="#">By: {{post.author}}</a><a href="{% url 'edit-post' post.pk %}"> Edit Post</a></p>
<p><a href="{% url 'upvote-post' pk=post.pk %}">Upvote</a><a href="{% url 'downvote-post' pk=post.pk %}"> DownVote</a></p>
</div>
{% endfor %}
{% endblock %}
解决方案
你能像这样试试吗:
def UpvoteView(request, pk):
selected_post = post.objects.get(pk=pk)
selected_post.ranking = selected_post.ranking +1
selected_post.save()
return reverse('feed-home')
你能得到 post.objects.all()
推荐阅读
- typescript - 为什么允许具有不同交集类型参数的接口方法实现?
- asp.net - 在没有自动回发的情况下更改下拉列表值
- amazon-web-services - 用于上传和分析用户视频的 AWS Web 服务
- android - 使用 gmail api 或 android 中的其他方式在我们的应用程序中收到的 Gmail
- pine-script - Pine 脚本 - 美元成本平均策略
- php - 从 Vue 到 Laravel 的过滤器(平均投票和评论数)
- firebase - 1LateInitializationError:字段“initUserName”尚未初始化
- amazon-web-services - 寻找从 PowerShell 中提取 AWS Service Quota Utilization Metric 的方法
- python - 在 Python 中使用 shutil、urllib 和 contextlib 下载 FTP 文件和另存为
- image - 存储带有图例的图像格式