- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想保存每个帖子的用户的投票,以防止重复投票。这个想法是将点赞保存在“liked_eintraege”中。用户应该只能在结果页面上投票,而不能在索引页面上投票。因此我将其添加到结果 View 中。
目前,如果您对某个帖子进行投票,积分就会上升,但问题是,无论我在索引页上单击哪个帖子,它都会不断重定向到该(已投票的)帖子。然而,重复投票是不可能的,因为它转到 else 子句并且不显示投票三角形。因此,防止重复投票是有效的。
View .py
def result(request, id):
eintrag = get_object_or_404(Eintrag, pk=id)
...
eintraege = Eintrag.objects.all().order_by('-id')
if request.user.is_authenticated():
#here in the next line is the problem:
liked_eintraege = request.user.liked_eintraege.filter(id__in=[eintrag.id for eintrag in eintraege])
else:
liked_eintraege=[]
context = {
'eintrag': eintrag,
'comments': comments,
'comment_form':form,
'liked_eintraege': liked_eintraege
}
return render(request, 'gaestebuch/result.html', context)
@login_required
def vote(request):
eintrag = get_object_or_404(Eintrag, pk=request.POST.get('eintrag'))
eintrag.points += 1
eintrag.save()
user = request.user
user.liked_eintraege.add(eintrag)
user.save()
return HttpResponse()
模型.py:
class Eintrag(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
title = models.CharField(max_length=200)
points = models.IntegerField(default=1)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
voters = models.ManyToManyField(User, related_name='liked_eintraege')
在 result.html 中:
{% if user.is_authenticated and eintrag not in liked_eintraege %}
<a href="/vote/" id="eintrag-vote-{{ eintrag.id }}" class="vote">▲</a>
<p id="eintrag-title-{{ eintrag.id }}">{{ eintrag.title }}</p>
{% else %}
<p>{{ eintrag.title }}</p>
{% endif %}
投票功能可以使用,这要归功于我之前发布的帖子。
最佳答案
这解决了我的问题!
liked_eintraege = request.user.liked_eintraege.all()
而不是过滤它(filter(id__in=[eintrag.id for eintrag in eintraege])),因为模板已经这样做了!不管怎样,谢谢。
关于python - 解决预防重复投票时从索引到帖子的重定向失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864419/
我已经能够通过 bean:write 消息中的 filter="true"组合以及我正在使用的标签库中使用 StringEscapeUtils.escapeHtml4(string) 来防止 stru
有什么办法可以防止 magento 中的 xss 攻击?在我的本地主机中,我只是想检查如何防止 xss 攻击,例如我在用户在 magento 中注册时插入脚本,在名称字段中插入整个脚本时我感到震惊我已
我是 Laravel 的新手,我正在学习它。 我们在 laravel 中做了什么来防止 sql 注入(inject)??什么是依赖注入(inject)以及我们如何防止这种情况发生? 提前致谢 最佳答案
最近我被嵌入式系统上的堆溢出困扰了好几次。 这通常是由于写入堆上声明的数组超过了数组的大小,这必须超过其他堆声明的变量,然后导致非常未定义的行为 - 使得根本原因难以追踪。 是否有任何方法可以检测/防
有一个 Node.js 项目可以清理数据,还有一个用于 JavaScript 的 OWASP 库可以处理清理以防止 XSS。 我一直在对这些库进行基准测试,它们非常密集,可能有点矫枉过正,我的应用程序
我的情况有点不同,我正在使用 CKEditor 进行编辑和显示,提交的字符串只会在 CKEditor 中显示,不会显示在其他任何地方。 我试过这个 XSS: alert("XSS")"> 我直接从后端
这个问题已经有答案了: How can I prevent a click on a '#' link from jumping to top of page? (25 个回答) 已关闭 5 年前。
通过对代码进行审查,可以轻松地识别和消除无效代码,但是,对于图像-未使用的图像仍会进入我们的版本控制。是否有任何组织图形内容的干净方法,以便网页和图像文件之间存在直接关联? 在我们当前的项目中,我们使
在我们的项目中,为了防止 XSS,我们添加了过滤器 (HttpServletFilter),它可以简单地转义 Json 中所有出现的“”(包装用户输入),例如: json = json.replace
我使用 Java JNI Gdal 。有一些服务器端应用程序构建在 JNI 绑定(bind)之上。如果 JNI 部分出现错误,整个 JVM 堆栈就会崩溃。 测试 C/C++ 库不包含会导致 JVM s
黑客通过 SQL 注入(inject)并运行虚假查询来攻击我的网站,如何防止他们需要帮助。 是否有任何防火墙可以防止黑客攻击等,或者我应该使用mysql_real_escape_string($_RE
我目前正在处理一个遗留的 ASP 项目,其中安全性现在已成为一个大问题。它不仅是不安全的加密方法(md5),而且我担心 SQL 注入(inject)问题。我还不太擅长注入(inject),而且我只尝试
我有兴趣了解如何在我的 ColdFusion 9 应用程序中防止跨站点请求伪造 (CSRF)。我在网上找到了一些教程,但似乎没有一个是全面的。我发现的最好的是:http://www.mollerus.
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我们的应用程序面临 XSS 攻击的问题。我们通过对 GET 请求使用普通过滤器来防止这种情况发生。 我们正在使用 RESTEasy REST Web 服务调用我们的应用程序。我们的过滤器不会过滤表单
我已经读过带有 2 个参数的 open() 命令容易被注入(inject),而带有 3 个参数的 open() 命令不能被注入(inject)。 说我有一个目录,我的所有文件都有一个公共(public
你好, 我正在尝试使用 CKEditor(一个 javascript WYSIWYG 编辑器)防止输入字段中的 XSS 和不正确的 html。 我应该如何在服务器端过滤这些数据?我比较的两个选项是 P
我刚刚了解了 CSRF 预防的细节。在我们的应用程序中,所有“写入”请求都是使用 XHR 完成的。整个页面实际上并没有提交任何一个表单,一切都是通过 XHR 完成的。 对于这种情况,维基百科建议 Co
据我所知,CSRF 预防似乎侧重于 (1) 使 GET 请求无副作用,以及 (2) 仅使用带有 CSRF token 的 POST 请求来更改状态。但在我看来,这假设攻击者的唯一目标可能是恶意更新受害
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来
我是一名优秀的程序员,十分优秀!