在 Django 中,您可以定义表单类并让模板根据类字段呈现它们。但是,您如何安全地将有关提交表单的用户的信息传递到视图中?
例如,您可以手动将用户硬编码到模板中的表单字段中
{{ request.user.username }}
但是,在这种情况下,任何人都不能向表单 url 提交他们自己想要的任何用户的发布请求吗?
是否有“Django 方法”来防止发生上述情况并让视图检索有关提交表单的用户的信息?
在 Django 中,您可以定义表单类并让模板根据类字段呈现它们。但是,您如何安全地将有关提交表单的用户的信息传递到视图中?
例如,您可以手动将用户硬编码到模板中的表单字段中
{{ request.user.username }}
但是,在这种情况下,任何人都不能向表单 url 提交他们自己想要的任何用户的发布请求吗?
是否有“Django 方法”来防止发生上述情况并让视图检索有关提交表单的用户的信息?
为了安全地跟踪表单的提交者,您可以要求用户登录才能提交表单。
正如 kathikr 提到的,您可以使用@login_required
装饰器来确保用户登录以提交表单。然后你可以依靠request.user
来确定登录用户。
contrib 应用程序“django.contrib.auth”和“django.contrib.sessions”是执行此操作的标准 Django 方式。
阅读有关“auth”应用程序的文档: https ://docs.djangoproject.com/en/dev/topics/auth/default/