Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建用户配置文件时自动生成用户电子邮件?_Python_Django_Django Models_Django Forms_Django Class Based Views - Fatal编程技术网

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

Python 创建用户配置文件时自动生成用户电子邮件?,python,django,django-models,django-forms,django-class-based-views,Python,Django,Django Models,Django Forms,Django Class Based Views,我正在使用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.Text

我正在使用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授权模型进行注册和登录,并使用基于类的视图生成配置文件

有人能帮我吗


感谢您

对于这种情况,您可以利用Django的模板

在主应用程序文件夹中创建一个包含用户对象的文件
context\u processors.py
,如下所示:

def user(request):
    return {'user': {'email': request.user.email if request.user.is_authenticated else None}}
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
            ],
        },
    },
]
然后在
settings.py
文件中,在
context\u processors
列表下添加上下文处理器的名称,如下所示:

def user(request):
    return {'user': {'email': request.user.email if request.user.is_authenticated else None}}
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}

我不理解您的说法,请在用户注册时提供的用户配置文件中自动生成用户电子邮件。你的意思是用户不必在注册过程中提供他的电子邮件,系统将自动生成一封电子邮件并分配给用户?不,我不是说…我的意思是当用户注册时,他/她将提供一些电子邮件来完成注册过程…我想在我的django项目的每个页面中获得用户在注册时提供的电子邮件…@Sazzadurahman我在我的问题不在于我的注册页面……那么为什么不在需要的页面中查询数据库中的电子邮件呢。或者你希望它是一种全局变量,你不必每次都显式地查询它?我希望它是这样的,例如,如果我们想要获得用户名,我们只需要在模板中执行{{user.get_username}}操作…对于电子邮件有没有其他类似的方法???