首页 > 解决方案 > 使用 Django 显示用户特定信息

问题描述

所以我知道这个问题有点宽泛,但我正在使用 Django 开发一个 Web 应用程序,但遇到了一个障碍;所以我想将用户特定的数据(由用户估算)存储在用户模型中。(我已经完成了用户模型,它按预期工作,我正在使用自定义用户类,这样我就可以获得所需的数据字段。)

所以问题是我想要一个页面的 url(即 www.example.com/profile/),但显示的信息是特定于登录用户的。并且让用户能够更改信息并使用更改更新数据库。我已经阅读了有关会话的 Django 文档,但我不确定它是否适用于我的用例或者我将如何实现它。谢谢您的帮助。

               Cheers

标签: pythondjangourlweb-applications

解决方案


在 django 上,请确保如果您登录用户,如果您使用request.user,它将向您发送已登录的用户。

从中您可以轻松获取所需的所有信息,然后将它们显示到模板上的输入中,例如从 ModificationForm 给出。

然后使用此表单,您可以像您所知道的那样在您的视图中请求它form = ModificationForm(request.POST)

我不知道我是否已经很好地回答了你的问题,如果你想要更多,请告诉我。我已经做了你想做的事,所以我可以帮助你。

下面我给你举个例子

表格.py

class ModificationForm(forms.ModelForm):
  name = models.CharField()
  ...

视图.py

def ModificationView(request):
  if request.user.is_authenticated():
    if request.method == 'POST':
      form = ModificationForm(request.POST)
      if form.is_valid():
        [ get all informations from inputs ]
    else:
      formModif = ModificationForm()
      profile = request.user
  else:
    HttpRedirect('404/')
  return render(request, 'profil/', locals())

profile.html

<html>
  ...
    <!-- Example of one input -->
    <input type="text" name="email" value="{{ profile.user.email }}"
  ...
</html>

例如,我不确定所有功能的名称或如何取回电子邮件,因为我已经有一段时间没有接触 Django,但我认为这可以与好名字一起使用。


推荐阅读