【发布时间】:2021-06-11 15:15:51
【问题描述】:
我正在尝试有效地制作 Reddit 克隆,只是为了使用 Django 进行练习,并且我正在尝试仅使用一个简单的整数来设置我的赞成/反对票系统(赞成票加一,反对票减一)但是当我点击“赞成票”时" 或 "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 %}
【问题讨论】:
-
请edit 并将完整错误回溯添加到您的问题中。
-
@AbdulAzizBarkat 我会更新它。
-
return reverse('feed-home')你为什么要返回一个网址?你应该返回一些response。
标签: python python-3.x django django-models django-views