如何使用 Django 显示用户个人资料?

2023-11-27

我是 django 的新手,目前正在尝试构建一个允许用户登录并查看其他用户个人资料的网站。到目前为止,我已经设法让用户登录,但我不知道如何查看其他人的个人资料。

每个个人资料都使用用户的用户名为其个人资料创建一个 URL。目前,如果我以一个用户身份登录并将 URL 更改为另一用户配置文件 URL,它仍然显示当前用户配置文件。我想要类似于 pinterest 的东西,任何人无论是否登录都可以查看人们的个人资料。

任何帮助,将不胜感激!

View

from django.http import HttpResponse
from django.shortcuts import render
from howdidu.forms import UserProfileForm
from howdidu.models import UserProfile
from django.contrib.auth.decorators import login_required
from django.shortcuts import get_object_or_404
from django.contrib.auth.models import User

def index(request):
    context_dict = {'boldmessage': "I am bold font from the context"}
    return render(request, 'howdidu/index.html', context_dict)

#user profile form
@login_required
def register_profile(request):
    profile = UserProfile.objects.get(user=request.user)
    if request.method == 'POST':
        form = UserProfileForm(request.POST, request.FILES, instance=profile)
        if form.is_valid():
            form.save()
            return index(request)
        else:
            print form.errors
    else:
        form = UserProfileForm()
    return render(request, 'howdidu/register_profile.html', {'form': form})

#profile page using user name as url
@login_required
def profile_page(request, username):
    user = get_object_or_404(User, username=username)
    return render(request, 'howdidu/profile.html', {'profile_user': user})

项目网址

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from registration.backends.simple.views import RegistrationView

class MyRegistrationView(RegistrationView):  #redirects to home page after registration
    def get_success_url(self,request, user):
        return '/register_profile'

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'howdidu_project.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('howdidu.urls')),
    url(r'^accounts/register/$', MyRegistrationView.as_view(), name='registration_register'), #redirects to home page after registration
    (r'^accounts/', include('registration.backends.simple.urls')),
    url(r'^(?P<username>\w+)/', include('howdidu.urls')), #do i need this?
)

# media
if settings.DEBUG:
    urlpatterns += patterns(
        'django.views.static',
        (r'^media/(?P<path>.*)',
        'serve',
        {'document_root': settings.MEDIA_ROOT}), )

app url

from django.conf.urls import patterns, url
from howdidu import views

urlpatterns = patterns('',
        url(r'^$', views.index, name='index'),
        url(r'^register_profile/$', views.register_profile, name='register_profile'),
        url(r'^(?P<username>\w+)/$', views.profile_page, name='user_profile'),
        )

template

{% extends 'howdidu/base.html' %}

{% load staticfiles %}

{% block title %}{{ user.username }}{% endblock %}

{% block body_block %}
        {% if user.is_authenticated %}
        <h1>{{ user.username }} welcome to your profile page</h1>
        <img src="{{ user.userprofile.profile_picture.url }}" width = "150" height = "150"  />
        <h2>{{ user.userprofile.first_name }}</h2>
        <h2>{{ user.userprofile.second_name }}</h2>
        <h2>{{ user.userprofile.user_country }}</h2>
        {% endif %}

{% endblock %}

  1. 在配置文件夹中注册您的应用程序的 urlproject_name/urls.py : E.g :
from django.conf.urls import include, url
from django.contrib import admin
from django.conf import settings 

urlpatterns = [
    url(r'^user/', include('<app_name>.urls')),
    url(r'^admin/', include(admin.site.urls)),
]
  1. 在您的中添加一条新路线<app_name>/urls.py. E.g :

从 。导入视图

urlpatterns = [
    url(r'profile/(?P<username>[a-zA-Z0-9]+)$', views.get_user_profile),
]
  1. 添加视图于<app_name>/views.py那需要username(用户的用户名)检索其信息并将其发送到模板中 例如:
from django.shortcuts import render

def get_user_profile(request, username):
    user = User.objects.get(username=username)
    return render(request, '<app_name>/user_profile.html', {"user":user})
  1. 在中创建一个模板文件<app_name>/templates/<app_name>/user_profile.html显示user目的 :
{{ user.username }} 
{{ user.email }}
{{ user.first_name }} 
{{ user.last_name }} 

Replace <app_name>根据您的应用程序的名称,它应该很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Django 显示用户个人资料? 的相关文章

随机推荐

  • Vim 双缩进 python 文件

    我得到以下行为 鉴于这种settings py片段 从第 33 行点击 o 31 Application definition 32 33 INSTALLED APPS 34 rest framework 我明白了 31 Applicati
  • PowerPoint 中 Plotly 的输出

    是否可以在 PowerPoint 中使用使用 Python 包 Plotly 创建的交互式图表 是否可以在幻灯片中插入绘图输出 据我所知和经验 如果你想在PPT中显示交互式图像 我目前的答案是否定的 因为之前我尝试对 Plotly 或 Bo
  • Kafka Consumer:如何在Python中从最后一条消息开始消费

    我正在使用 Kafka 0 8 1 和 Kafka python 0 9 0 在我的设置中 我有 2 个 kafka 经纪人设置 当我运行我的 kafka 消费者时 我可以看到它从队列中检索消息并跟踪两个代理的偏移量 一切都很好 我的问题是
  • 升级到 OSX El Capitan 后出现 rpy2 错误

    我有一个错误发生在与这个问题非常相似 简单安装的解决方案rpy2使用 conda 不起作用 我的案例的主要区别在于rpy2在我更新到 Mac OSX 10 11 El Capitan 之前工作正常 我的Python版本是Python 2 7
  • 如何重写 NET 类型转换器?

    我正在开发一个 ETL 类型的应用程序 它从 csv 数据文件创建实体 特别是一个字段 布尔字段 被证明很难使用 因为系统提供了自己对布尔值的解释 例如 true false yes no 1 0 甚至 1 等 使用默认类型转换器大多数测试
  • 如何在 React js 中获取时隐藏控制台状态错误消息?

    在我的 React 应用程序中 我正在使用fetch 从我的 API 获取数据 callAPI 函数得到domain如果我的数据库中存在该域的网站 则参数并调用API 如果存在 则返回网站的对象 否则返回 500 因此 在使用 fetch
  • Spring-JDBC 中的隔离级别 SERIALIZABLE

    也许有人可以帮助我解决 Spring 3 1 Postgresql 8 4 11 中的事务问题 我的交易服务如下 Transactional isolation Isolation SERIALIZABLE readOnly false O
  • justify content 的默认值是多少?

    MDN 的默认值为证明内容合理 as normal但这没有列在可接受的值列表中 什么是normal value normal这些物品都按照默认位置包装 就好像没有一样 justify content 值已设置 该值表现为网格中的拉伸 和柔性
  • android MVP - 我可以有多个演示者来自定义视图和片段吗

    所以我有一个已经与某项活动相关联的演示者 这本书说 一位演讲者应该与一种观点联系在一起 但现在我添加了一些片段和大量自定义视图 我也认为片段是一个视图 自定义视图将包含一些逻辑 当然 片段和自定义视图都包含在我的活动中 我的问题是 我应该在
  • AlertDialog 的浅色主题?

    我正在创建一个 AlertDialog 我正在使用 setView 设置自定义视图 这将在对话框上启用 深色 主题 灰色背景 并且需要白色文本 有没有办法将对话框设置为使用 浅色 主题 它看起来更好 白色背景 深色文本 Thanks 我采取
  • 如何使 JFrame 背景和 JPanel 透明,仅显示图像

    嘿 我正在尝试制作某种启动器 窗口 必须是透明的 因为我希望我使用的图像成为它的设计 如果你明白我的意思的话 我尝试做setUndecorated true and setBackground new Color 0 0 0 0 但它看起来
  • 如何通过 Paperclip + S3 使用种子数据

    我正在尝试使用会员个人资料以及 S3 和回形针的会员个人资料图片为我的数据库添加种子 但它似乎不起作用 我可以在应用程序中创建 编辑现有成员 以使用回形针 S3 添加图片 它工作得很好 但播种却不起作用 我已经搜索过但找不到答案 我不知道你
  • F# 将 Array2 转换为列表

    我对函数式编程还是个新手 所以如果我不知道如何做某事 我就会回到过程式风格 我找到了一种方法来避免转换为列表 但我仍然想知道如何进行 这是我将二维数组转换为列表的尝试 let board Array2 init 10 20 fun i j
  • 如何设置 Android Studio 以完全离线工作?

    我的带宽非常慢 因此我尝试将所有必需的文件保留在本地计算机上 以便完全离线使用 Android Studio 当我单击 新项目 时 它总是尝试下载名为gradle 1 6 bin zip我下载并尝试通过插件管理器在本地安装 但它给了我一个错
  • 不同上下文中对象之间的非法关系:但我只有一个上下文?

    我收到以下错误 NSInvalidArgumentException 原因 非法企图建立一个 之间的关系 条件 不同上下文中的对象 当运行我的 iPhone 应用程序时 我的模型的相关部分如下所示 AssessmentTree has on
  • 为什么C中的一个printf()不能同时打印两个64位值?

    我正在 32 位系统上工作 当我尝试在单个 printf 中打印多个 64 位值时 它无法打印任何其他 即第二个 第三个 变量值 example uint64 t a 0x12345678 uint64 t b 0x87654321 uin
  • has_many :通过问题

    我之前使用的是 has and belongs to many 现在已转换为 has many through 以下是它如何查找可以有许多用户玩的游戏列表 有了这个 我可以做 game users 和 user games class Ga
  • 通过选择“property”属性获取“Meta”属性“content”

    在 jQuery 中你可以这样做 meta property fb app id attr content 这会给你content属性值来自meta 标记为property属性 fb app id 我怎样才能用普通的 Javascript
  • PHP Date - 如何添加字符串来分隔日期和时间

    我想显示类似这样的日期和时间格式 May 23 at 12 30pm 我在PHP手册中看到 Prints something like Monday 8th of August 2005 03 12 46 PM echo date l jS
  • 如何使用 Django 显示用户个人资料?

    我是 django 的新手 目前正在尝试构建一个允许用户登录并查看其他用户个人资料的网站 到目前为止 我已经设法让用户登录 但我不知道如何查看其他人的个人资料 每个个人资料都使用用户的用户名为其个人资料创建一个 URL 目前 如果我以一个用