我目前有一个来自我的用户填写。从那里,网站管理员必须批准或拒绝表单。我想快速批准或拒绝这些条目。以下是相关的models.py
class MyModel(models.Model):
STATUS_CHOICES = (
('Submitted', 'Submitted'),
('Approved', 'Approved'),
('Declined', 'Declined'),
)
user= models.ForeignKey(UserProfile)
status = models.CharField(max_length=55, choices=STATUS_CHOICES, default='Submitted')
用户提交后,我有一个视图,列出MyModel.status已提交的所有实例。这是views.py
@staff_member_required
def review(request):
pending = MyModel.objects.filter(status="Submitted")
最后,我有一个认可的观点:
# views.py
@staff_member_required
def approve(request, id):
MyModel.objects.filter(id=id).update(status="Approved")
#urls.py
url(r'^review/approve/(?P<id>[\w\-]+)/$', views.approve),
我想要做的是有一个按钮我可以点击批准表单并让接受的对象消失,而不是必须单击按钮接受,然后刷新页面并为下一个做同样的事情一。关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
正如hansTheFranz所建议的,如果你想阻止页面重新加载,只需编写一个更新模型的ajax函数。另外,我建议在管理页面中加载所有表单(请参阅https://docs.djangoproject.com/fr/1.11/topics/forms/formsets/批量生成而不是逐个生成),将它们全部隐藏起来除了第一个并使用ajax success函数隐藏当前的表单并显示以下。
PS:不要忘记将CSRF令牌发送到您的视图,在与Django一起使用ajax时,它常常是一个麻烦的来源。