创建用户配置文件时自动生成用户电子邮件?

2024-04-19 21:08:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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认证模型注册和登录,并使用基于类的视图生成我的配置文件。你知道吗

有人能帮我吗?你知道吗

谢谢


Tags: django代码用户nameauth应用程序modelsettings
1条回答
网友
1楼 · 发布于 2024-04-19 21:08:41

对于这种情况,您可以利用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 }}

相关问题 更多 >