我正在创建一个django应用程序,用户可以在其中发布状态'。他以前的状态列表'也显示在同一页面上,每个帖子都有一个delete post
选项。我在该按钮上添加了一个使用ajax calls to change the class variable in models.py
的onclick函数。即。 models.py中类status_class中的delete变量在单击delete post按钮后将其值从0更改为1。然后只显示删除= 1的帖子。在脚本中帮助我modify the delete_post function
,以便它像我上面提到的那样工作。如果需要进行任何其他更改,请提及。感谢。
from django.db import models
from django.contrib.auth.models import User
class status_class(models.Model):
username=models.ForeignKey(User)
text=models.CharField(max_length=2000, null=False, blank=False)
pub_date=models.DateTimeField("Published: ")
delete=models.IntegerField(default=0)
def __unicode__(self):
return self.text
<script>
function deletepost(id)
{
$.ajax({
url: "/delete_post/",
type: "POST",
data: {'value':id},
success: function(response) {
},
});
}
</script>
url(r'^delete_post/$', 'status.views.deletepost_view', name='deletepost_view'),
@csrf_exempt
def deletepost_view(request):
value=request.POST.get("value")
b=User.objects.filter(id=str(value))
#delete change statement
resp=json.dumps(b)
return HttpResponse(resp, content_type="application/json")
{% for i in d %}
<p>{{ i.text }}      {{ i.pub_date }}
<button type="button" class="btn btn-danger" onclick="deletepost(i.id);"> Delete Post </button></p>
<hr>
{% endfor %}
NOTE:
也帮助我。我想过滤帖子,只显示删除变量等于0的帖子。尚未删除的。我应该在哪里写过滤语句?
答案 0 :(得分:3)
以下更改将有效。
def deletepost_view(request):
value=request.POST.get("value")
b=status_class.objects.get(id=str(value))
b.delete = 1
b.save()
resp=json.dumps(b)
return HttpResponse(resp, content_type="application/json")
{% for i in d %}
<p>{% if i.delete == 0 %}
{{ i.text }}     {{ i.pub_date }}
<button type="button" class="btn btn-danger" onclick="deletepost({{ i.id }});"> Delete Post </button>
<hr></p>
{% endif %}
{% endfor %}