我正在试图找出如何对用户生成的对象进行内联编辑,粗略的程序(没有代码只是步骤),以及是否有一些方法可以在没有AJAX的情况下执行此操作 - 当然它不再是“内联”了。
假设用户对象只有1行文本和1张图像。像,
class UserObject(models.Model):
text = models.CharField()
image_path = models.CharField()
如果我要使用AJAX,这会是怎么回事? (对不起,这很模糊,我可以弄清楚只是试图看看我是否理解正确的概念)
project/remove/ab12345
,它连接到处理它的视图。 div
是吗?
另外,如果我不想使用AJAX怎么办?它会是这样的吗?
project/remove/ab12345
的网址,该网址连接到处理它的视图任何指针都将不胜感激!!我可以弄清楚编码的细节,只是想知道我是否正确理解这些概念。
答案 0 :(得分:0)
用户创建的对象与您自己创建的对象没有什么不同(除非您必须怀疑潜在的恶意输入!)。能够在管理界面之外编辑对象的最简单方法是使用内置的UpdateView
。同样,您可以使用DeleteView
删除它们。如果您想限制可以编辑对象,可以使用django braces中的PermissionRequiredMixin
。
答案 1 :(得分:0)
好的,因为我发布了这个非常模糊的问题,我将回答它。
AJAX免费: AJAX免费版本就像我描述的那样,创建一个视图和一个删除图像的URL,然后返回到引用页面。接下来尝试AJAX版本,它基本上需要一个返回某种失败或成功信号的视图。
<强> urls.py 强>
url('^project/remove_image/(?P<image_id_string>[0-9A-Fa-f]+)/$', pbrand.views.ProjectRemoveImageView.as_view(), name='project_remove_image'),
<强> views.py 强>
class ProjectRemoveImageView(View):
redirect_url = '/project/edit' # the editing url
def get(self, request, image_id_string, *args, **kwargs):
# ... some checks on permissions
image.delete()
return HttpResponseRedirect(self.redirect_url + "/" + project.id_string)
模板内的
<a class = "btn btn-default btn-sm" href="{% url 'project_remove_image' i.id_string %}" role="button">remove</a>