在django注册中添加自定义配置文件字段
问题描述:
我在django注册中添加了一个附加字段network
。在django注册中添加自定义配置文件字段
# in myproject.userprofile
from django.db import models
from django.contrib.auth.models import User
from myproject.network.models import Network
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
network = models.ForeignKey(Network, unique=True)
# in settings.py
AUTH_PROFILE_MODULE = 'userprofile.UserProfile'
由于网络是根据用户的授权电子邮件地址生成的,因此我不需要为表单添加任何新内容。
到目前为止,我有以下 - 这是工作,但显然没有做到这一点的最好办法 -
profile_additional = UserProfile.objects.create(user=User.objects.get(username=username),network=Network.objects.get(network=EmailList.objects.get(email=email).network))
可否请你告诉我的首选方法,这样做同样的事情?我已经阅读了一些关于使用信号添加额外字段的教程,但似乎无法让自己正常工作。演示如何做到这一点的代码将不胜感激。谢谢。
答
This是一个示例,如果需要,它会显示您how to use signals to create a new profile。
您可以轻松扩展示例以在创建配置文件时编辑网络字段,或检查每次保存用户时是否设置了网络字段。