你好,我是python和django的新手,我需要一个获取当前用户配置文件的视图,我知道我应该使用User的get_profile,但我不知道如何使用它。我读了django文件,但并没有帮助我。这是我从doc中找到的:
from django.contrib.auth.models import User
profile=request.user.get_profile()
Django的文档说明了一切,尤其是存储有关用户的其他信息的部分。首先,您需要在models.py
字段中的某个位置定义一个模型,以获取用户的其他信息:
models.py
from django.contrib.auth.models import User
class UserProfile(models.Model):
# This field is required.
user = models.OneToOneField(User)
# Other fields here
accepted_eula = models.BooleanField()
favorite_animal = models.CharField(max_length=20, default="Dragons.")
然后,你需要表明,该模型(UserProfile
)是通过设置用户配置文件AUTH_PROFILE_MODULE
的内部settings.py
:
settings.py
...
AUTH_PROFILE_MODULE = 'accounts.UserProfile'
...
您需要accounts
用您的应用名称替换。最后,您希望在每次User
通过注册post_save
处理程序创建实例时创建一个配置文件,这样,每次创建用户时,Django也会创建一个配置文件:
models.py
from django.contrib.auth.models import User
class UserProfile(models.Model):
# This field is required.
user = models.OneToOneField(User)
# Other fields here
accepted_eula = models.BooleanField()
favorite_animal = models.CharField(max_length=20, default="Dragons.")
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
要在您的视图中访问当前用户的个人资料,只需使用User
请求提供的实例,然后在其上调用get_profile:
def your_view(request):
profile = request.user.get_profile()
...
# Your code
问题内容: 在将其他字段(例如位置,性别,雇主等)添加到用户个人资料时,是否应该在其中添加其他列并将其保存在其中?还是应该创建一个新表来保存用户个人资料信息? 另外,当用户上传个人资料图片时,是否应该将其保存在同一张表中?(请注意,这不是生产服务器,我只是在本地运行服务器上执行此操作以弄清楚问题)。谢谢 问题答案: 你必须为用户个人资料建立模型: 然后在中配置
问题内容: 我正在使用来存储一些其他的每用户信息AUTH_PROFILE_MODULE。 我们可以使用Django模板访问用户,但是由于只能通过函数访问配置文件,因此如何访问配置文件中的字段? 确实需要每次将配置文件显式传递到模板中吗? 问题答案: 使用。Django的模板语言会自动调用可调用的东西-在这种情况下为法。
问题内容: 我正在尝试重定向刚刚登录到他/她各自帐户页面的用户。 这个问题已经被问过几次了,但是其中大多数是古老的,并且使用静态网址,例如:Django- 登录后,将用户重定向到他的自定义页面-> mysite.com/username 。我想使用动态网址命名来实现此解决方案。 例如,如果我的帐户目标网页具有以下网址格式,该怎么办? 我怎么会通过ARGS中的? 问题答案: 这是不可能的使用动态参数
我正在使用脸书API V2.0 JavaScript SDK创建一个网站,我想显示用户的朋友的个人资料图片。我已经设法使用graph API显示了我的个人资料图片,但是如果我登录了我的应用程序(我是管理员),我无法获得我所有朋友的ID。如果我有身份证,我就能展示他们的照片。 在图形资源管理器中,我检查了所有权限(用户数据权限扩展权限)。我注意到,如果我切换到API V1.0,我会获得朋友权限,这正
问题内容: 我有一个奇怪的情况,我已对SeleniumWeb驱动程序代码进行了一些修改,以允许在其他用户下启动驱动程序服务,对github中代码的更改是: 在调用实例中从我的外部代码传入用户详细信息的地方,以实例化Web驱动程序: 要么 并通过传播。 这会在所需的用户凭据下成功启动chrome驱动程序,但IE出现问题。 此外,chrome驱动程序与通过给定用户手动启动chrome(即,不是通过se
问题内容: 我想获取我朋友列表中的所有生日。我已经尝试了好几天。我的代码如下。 每次我使用此代码都会产生错误。令牌都显示为空,响应都显示为问题“必须使用活动访问令牌来查询有关当前用户的信息” 问题答案: 创建一个方法: 在方法主体中,您必须编写: } 上面的函数将从facebook获取json数据。您需要解析json以获得单独的配置文件数据。 来自Facebook的样本配置文件json将如下所示: