我正在使用Django创建应用程序
我的代码如下:
class Profile(models.Model):
Name = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
E_mail = models.EmailField(max_length=70)
Phone_no = models.BigIntegerField()
Skills = models.TextField()
Image = models.ImageField(upload_to='user_images')
我要在用户注册时提供的用户个人资料中自动生成用户电子邮件。
我正在使用django认证模型进行注册和登录,并且正在使用基于类的视图来生成个人资料。
有人可以帮我吗?
谢谢
答案 0 :(得分:1)
在这种情况下,您可以利用Django的custom context processors作为模板。
在主应用文件夹中创建一个文件context_processors.py
,该文件将包含用户对象,如下所示:
def user(request):
return {'user': {'email': request.user.email if request.user.is_authenticated else None}}
然后在settings.py
文件中,在context_processors
列表下添加上下文处理器的名称,如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'myapp.context_processors.user', # This is our custom context processors
],
},
},
]
现在,您可以使用以下语法在所有模板中访问用户电子邮件,{{ user.email }}