python - Django 编辑表单安全方式
问题描述
我有编辑表单(modelform),我为该表单创建了一个类似 /contacts/edit// 的 url 我的视图是方法基础视图,我将 contact_id 从我的模板传递给视图作为参数。
然后这就是我正在做的事情:
def edit_contact(request, contact_id):
is_user_authenticated(request.user.is_authenticated)
contact_person = get_object_or_404(domain.Contact.contacts, pk=contact_id)
if request.method == 'POST':
form = forms.ContactPersonForm(request.POST, instance=contact_person)
if form.is_valid():
form.save()
return HttpResponseRedirect('/contacts/')
但是,任何用户只需提供 ID 即可访问该网址,基本上您可以编辑任何您想要的人。
我可以对 DB 再做一次查询,以确定一个人是否是编辑联系信息的合适人选,但这样做是否正确?我的情况的最佳做法是什么?
解决方案
推荐阅读
- sql - 仅从感兴趣的表中选择
- struct - 有没有办法让递归结构/枚举默认装箱?
- for-loop - 来自命令的批量变量存储结果
- c++ - 没有执行策略的 std::transform_reduce 是否可移植?
- python - Keras 上的自定义损失函数给出了一个奇怪的错误:__call__() 缺少 1 个必需的位置参数:'y_true'
- python - 图片更新后显示空白
- java - 找不到要发送 Tab 键的 HTML 元素
- ios - WatchOS 应用程序未检测到配套的 iOS 应用程序
- user-interface - Roblox Gui 仅在第一次单击时打开/关闭
- github - 当我在推送到所有常规存储库时尝试推送到 gist.github.com 时,是什么导致了这个错误?