我试图检查用户是否试图自己输入网址,或者他跟踪网址并将我需要的值放在我为他构建的表格中。 在某些Ungeneric类中,我可以检查那个东西 -
if request.method == 'GET':
但是在DeleteView中我无法做到这一点,所以我不知道如何防止用户通过输入URL自己做坏事。 我如何使用在通用视图中执行相同功能的功能,并检查用户是自己输入网址还是填写表单?
答案 0 :(得分:1)
答案 1 :(得分:0)
默认情况下,DeleteView
仅对POST
请求进行删除。因此,您的用户将无法删除仅发出GET
请求的项目。
但是为了您的信息,所有基于类的视图(CBV)都会调用dispatch
方法,然后根据post
调用以太get
或request.method
。
您可以直接在dispatch
方法中添加一些逻辑或修改get
并在那里进行检查
示例强>
class MyDeleteView(DeleteView):
def post(self, request, *args, **kwargs):
...
def get(self, request, *args, **kwargs):
# here you can make redirect to any url
...