使用Django显示用户特定的信息

时间:2018-07-09 17:42:01

标签: python django url web-applications

所以我知道这个问题有点广泛,但是我正在使用Django开发Web应用程序,但是遇到了麻烦。所以我想在用户模型中存储特定于用户的数据(由用户估算)。 (我已经完成了用户模型,并且可以按预期工作,并且我正在使用自定义用户类,以便可以拥有所需的数据字段。)

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

               Cheers

1 个答案:

答案 0 :(得分:0)

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

由此,您可以轻松获取所需的所有信息,然后将其显示在模板的输入中(例如,从ModificationForm提供)。

然后使用此表单,就可以像使用form = ModificationForm(request.POST)一样在视图中请求它。

我不知道我是否已经很好地回答了您的问题,请告诉我您是否想要更多。我已经完全按照您的意愿做了,所以我可以为您提供帮助。

下面我举一个例子

forms.py

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

views.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())

profil.html

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

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

相关问题