Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 如何将化身配置文件添加到django内置表单?_Python_Django - Fatal编程技术网

Python 如何将化身配置文件添加到django内置表单?

Python 如何将化身配置文件添加到django内置表单?,python,django,Python,Django,如何在内置Django表单上添加字段以添加图像?以下是my form.py的代码: class CreateUserForm(UserCreationForm): password1 = forms.CharField( label="Password", widget=forms.PasswordInput(attrs={'class':'form-control form-control-user', 'type':'passwo

如何在内置Django表单上添加字段以添加图像?以下是my form.py的代码:

class CreateUserForm(UserCreationForm):

    password1 = forms.CharField(
        label="Password",
        widget=forms.PasswordInput(attrs={'class':'form-control form-control-user', 'type':'password', 'align':'center', 'placeholder':'Password'}),
    )
    password2 = forms.CharField(
        label="Confirm password",
        widget=forms.PasswordInput(attrs={'class':'form-control form-control-user', 'type':'password', 'align':'center', 'placeholder':'Confirm Password'}),
    )

    class Meta(UserCreationForm.Meta):
        model = get_user_model()
        widgets = {
            'username': TextInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'Username'}),
            'first_name': TextInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'First Name'}),
            'last_name': TextInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'Last Name'}),
            'email': EmailInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'Email Address'}),
        }

        fields = ['username', 'first_name', 'last_name', 'email']

我假设您使用的是内置django
User
模型。 Django用户模型没有头像字段。所以,您应该做的是通过创建一对一的关系来扩展您的默认用户模型,该关系通过“化身”字段指向另一个模型

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
    avatar = models.ImageField(upload_to = "avatars/", null=True, blank=True)

然后使用django
post_save
信号在创建
User
实例时自动创建
UserProfile
模式实例

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User
from yourapp.models import UserProfile

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)
在那之后,你就可以使用模态表单访问阿凡达字段


~hope that help

您是要将图像接受为字段还是以表单形式渲染图像?接受图像,然后进行渲染,我知道如何渲染图像,但我不知道如何接受图像您查看了吗?。