我在django-registration中添加了一个额外字段network
。
# 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))
你能告诉我做同样事情的首选方法吗?我已经阅读了一些关于使用信号添加其他字段的教程,但似乎无法让它自己工作。将非常感谢演示如何执行此操作的代码。谢谢。
答案 0 :(得分:1)
This是一个示例,可根据需要向您显示how to use signals to create a new profile。
您可以在创建配置文件时轻松扩展示例以编辑网络字段,或者每次保存用户时检查网络字段是否已设置。