在 Django 中创建用户个人资料页面

2024-05-06

我是 Django 的初学者。我需要设置一个网站,其中每个用户都有一个个人资料页面。我见过 django 管理。用户的个人资料页面,应该存储一些只能由用户编辑的信息。谁能指出我这怎么可能?任何教程链接都会非常有帮助。另外,django 是否有任何模块可用于设置用户页面。


您只需要创建一个可供经过身份验证的用户使用的视图,并返回一个配置文件编辑表单(如果他们正在创建一个)GET请求或更新用户的个人资料数据(如果他们正在创建)POST要求。

大部分工作已经为您完成,因为有通用视图 https://docs.djangoproject.com/en/dev/topics/class-based-views/用于编辑模型,例如更新视图 https://docs.djangoproject.com/en/dev/ref/class-based-views/#updateview。您需要扩展的是检查经过身份验证的用户并向其提供您想要提供编辑的对象。这是 MTV 三元组中的视图组件,提供编辑用户个人资料的行为 -Profile模型将定义用户资料 https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users模板将单独提供演示文稿。

因此,这里有一些行为可以作为简单的解决方案:

from django.contrib.auth.decorators import login_required
from django.views.generic.detail import SingleObjectMixin
from django.views.generic import UpdateView
from django.utils.decorators import method_decorator

from myapp.models import Profile


class ProfileObjectMixin(SingleObjectMixin):
    """
    Provides views with the current user's profile.
    """
    model = Profile

    def get_object(self):
        """Return's the current users profile."""
        try:
            return self.request.user.get_profile()
        except Profile.DoesNotExist:
            raise NotImplemented(
                "What if the user doesn't have an associated profile?")

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        """Ensures that only authenticated users can access the view."""
        klass = ProfileObjectMixin
        return super(klass, self).dispatch(request, *args, **kwargs)


class ProfileUpdateView(ProfileObjectMixin, UpdateView):
    """
    A view that displays a form for editing a user's profile.

    Uses a form dynamically created for the `Profile` model and
    the default model's update template.
    """
    pass  # That's All Folks!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Django 中创建用户个人资料页面 的相关文章

  • 使用多处理池更新 Django 模型会锁定数据库

    我使用 Jupyter Notebook 来处理我存储在 django postgres 中的数据 我这样初始化我的项目 sys path append srv gr prg os environ setdefault DJANGO SET
  • 在 django 管理表单中的选择性文本区域上使用 ckEditor

    我想在 django 管理表单中的特定文本区域应用 ckeditor 而不是在所有文本区域 下面的代码片段将在 django 表单上的每个文本区域上应用 ckeditor class ProjectAdmin admin ModelAdmi
  • Django 管理内联以实现深层关系

    为直接关系创建内联非常容易 但是如何为更深层次的关系创建内联 假设情况是这样的 class A models Model class B models Model a models ForeignKey A class C models M
  • Django-多个端口上的会话 cookie 和站点

    我有多个 Django 项目在一台服务器上运行 使用gunicorn http gunicorn org and nginx http wiki nginx org 目前 它们都被配置为使用 nginx 中的服务器指令在同一 IP 地址的唯
  • 在 Django 中使用 path() 找不到 404

    我刚刚查看 django 并尝试通过视图列出书籍id作为 URL 的参数books urls py 但出现 404 页面未找到错误 当我在浏览器中输入此网址时 我没有发现网址有什么问题 http 192 168 0 106 8000 boo
  • 如何使用 django Rest 框架通过直通模型序列化 ManyToManyField

    我有一个 Recipe 模型 其中包含 IngredientType 对象的 M2M 字段 该字段 又名成分列表 通过 Ingredient 对象使用臭名昭著的 through 模型 该对象将额外的数据添加到我的 IngredientTyp
  • 升级到 1.8.1 后 Django 管理中断

    我从 1 7 3 升级到 1 8 1 但我的管理员无法工作 并且站点无法加载 因为它在解析路径时失败 例外 Enable django contrib auth context processors auth in your TEMPLAT
  • Django查询集基于外键值的特定顺序

    对于棒球网站 我有两个模型 位置模型和球员模型 位置被命名为投手 捕手 一垒 二垒 三垒等 class Position models Model name models CharField max length 100 slug mode
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • Django:MEDIA_URL 返回找不到页面

    设置 py coding utf 8 Django settings for basic pinax project import os path import posixpath PROJECT ROOT os path abspath
  • 404因为重新启动webpack-dev-server

    当我尝试更改反应组件并保存它以查看热加载器是否更新了我的页面时 我在开发人员工具中得到了这个 GET http localhost 3000 public bundle 76566a1ad7e45b834d4e hot update jso
  • django 1.9 不为自定义用户模型创建表

    我的项目名称是timecapture 这是 timecapture settings py 的相关部分 INSTALLED APPS django contrib admin django contrib auth django contr
  • 如何在 Django 序列化器中使用主键

    我的模型是 class UserInfo models Model user models OneToOneField User unique True mobile no models CharField max length 10 bl
  • 如何使用 DJango Rest Framework 上传多个图像?

    我可以使用以下代码上传单个图像 如果我选择多个图像 则仅上传所选图像中的最后一个图像 模型 py class Image models Model property id models ForeignKey properties Addre
  • 如何更改 ModelForm 中所有 Django 日期字段的默认小部件?

    给定一组典型模型 Application A from django db import models class TypicalModelA models Model the date models DateField Applicati
  • 与 iexact 一起使用时,Django get_or_create 无法设置字段

    我想用name iexact with get or create尽可能避免用户输入字段的重复 我的提供者模型有一个名称字段 我在其中使用get or create 查找工作正常 但在第一次创建实例时 如下面的 p1 Timber 示例 名
  • Django css文件缓存

    我有一个 css 文件 我想修改它以满足我的需要 问题是它似乎被缓存在某个地方 因为无论我在 css 文件中做什么 我都看不到更改 我确信我指向了正确的文件 因为现在我已经对其进行了修改 并且它有效 有什么设置可以关闭缓存吗 谢谢 正如本文
  • Django 的 URL 覆盖率测试为 0%,为什么?

    使用姜戈鼻子 我对 URL 进行了测试 但 URL 覆盖率仍然为 0 为什么 python manage py 测试配置文件 这是我的报道 Name Stmts Miss Cover Missing profiles 0 0 100 pro
  • Django - 电子邮件发送两次

    每当我使用如下所示的电子邮件设置从views py调用下面的方法时 电子邮件的两份副本都会发送给收件人 并且我收到如下所示的错误 def sendEmailBasic request msg EmailMessage Request Cal
  • Django南迁移AttributeError

    我在 Django 1 4 中向南 0 7 5 迁移时遇到了这个错误 我最近将时区设置更改为 false 即 USE TZ False 以解决另一个问题 有任何想法吗 谢谢 code django ssc dev ssc ssc pytho

随机推荐