Python 每当新用户使用Signals注册时,我想向用户配置文件显示默认pic,而不需要从Django admin手动执行
每当使用信号创建新用户时,我想加载用户的默认pic。但它并没有加载默认图片。我不想从Django管理员手动执行此操作,我希望在应用程序中创建新用户时执行此操作 型号.pyPython 每当新用户使用Signals注册时,我想向用户配置文件显示默认pic,而不需要从Django admin手动执行,python,django,Python,Django,每当使用信号创建新用户时,我想加载用户的默认pic。但它并没有加载默认图片。我不想从Django管理员手动执行此操作,我希望在应用程序中创建新用户时执行此操作 型号.py from django.db import models from django.contrib.auth.models import User class userprofile(models.Model): user = models.OneToOneField(User,on_delete = models.
from django.db import models
from django.contrib.auth.models import User
class userprofile(models.Model):
user = models.OneToOneField(User,on_delete = models.CASCADE)
profilepic = models.ImageField(default='pp.png',upload_to='profile_pic',blank = True)
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import userprofile
class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = userprofile
fields = ['profilepic',]
@login_required
def profile(request):
if request.method == 'POST':
p_form = ProfileUpdateForm(request.POST,request.FILES,instance=request.user.userprofile)
if p_form.is_valid():
p_form.save()
return render(request,'profile.html')
else:
p_form = ProfileUpdateForm(instance=request.user.user)
context = {
'p_form': p_form
}
return render(request,'profile.html',context)
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import userprofile
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
userprofile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
from django.apps import AppConfig
class HomepageConfig(AppConfig):
name = 'Homepage'
def ready(self):
import users.signals
forms.py
from django.db import models
from django.contrib.auth.models import User
class userprofile(models.Model):
user = models.OneToOneField(User,on_delete = models.CASCADE)
profilepic = models.ImageField(default='pp.png',upload_to='profile_pic',blank = True)
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import userprofile
class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = userprofile
fields = ['profilepic',]
@login_required
def profile(request):
if request.method == 'POST':
p_form = ProfileUpdateForm(request.POST,request.FILES,instance=request.user.userprofile)
if p_form.is_valid():
p_form.save()
return render(request,'profile.html')
else:
p_form = ProfileUpdateForm(instance=request.user.user)
context = {
'p_form': p_form
}
return render(request,'profile.html',context)
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import userprofile
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
userprofile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
from django.apps import AppConfig
class HomepageConfig(AppConfig):
name = 'Homepage'
def ready(self):
import users.signals
视图.py
from django.db import models
from django.contrib.auth.models import User
class userprofile(models.Model):
user = models.OneToOneField(User,on_delete = models.CASCADE)
profilepic = models.ImageField(default='pp.png',upload_to='profile_pic',blank = True)
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import userprofile
class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = userprofile
fields = ['profilepic',]
@login_required
def profile(request):
if request.method == 'POST':
p_form = ProfileUpdateForm(request.POST,request.FILES,instance=request.user.userprofile)
if p_form.is_valid():
p_form.save()
return render(request,'profile.html')
else:
p_form = ProfileUpdateForm(instance=request.user.user)
context = {
'p_form': p_form
}
return render(request,'profile.html',context)
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import userprofile
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
userprofile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
from django.apps import AppConfig
class HomepageConfig(AppConfig):
name = 'Homepage'
def ready(self):
import users.signals
profile.html
<form method ="POST" class="sm:w-1/3 text-center sm:pr-8 sm:py-8" enctype="multipart/form-data" >
{% csrf_token %}
<img id="profile_pic" alt="team" class="flex-shrink-0 rounded-lg w-full h-56 object-cover object-center mb-4" src="{{user.userprofile.profilepic.url}}">
{{ p_form|crispy }}
<br>
<input id="file-input" style="padding: 8px 93px;" class="text-white bg-green-500 border-0 py-2 px-8 focus:outline-none hover:bg-green-700 rounded text-lg" type="submit" value="Upload">
</form>
apps.py
from django.db import models
from django.contrib.auth.models import User
class userprofile(models.Model):
user = models.OneToOneField(User,on_delete = models.CASCADE)
profilepic = models.ImageField(default='pp.png',upload_to='profile_pic',blank = True)
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import userprofile
class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = userprofile
fields = ['profilepic',]
@login_required
def profile(request):
if request.method == 'POST':
p_form = ProfileUpdateForm(request.POST,request.FILES,instance=request.user.userprofile)
if p_form.is_valid():
p_form.save()
return render(request,'profile.html')
else:
p_form = ProfileUpdateForm(instance=request.user.user)
context = {
'p_form': p_form
}
return render(request,'profile.html',context)
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import userprofile
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
userprofile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
from django.apps import AppConfig
class HomepageConfig(AppConfig):
name = 'Homepage'
def ready(self):
import users.signals
首先,将图像加载到表单外部。然后将默认图像添加到介质内部和上载配置文件图片的文件夹外部
如您所见,它位于媒体文件夹的根目录中。首先要将图像加载到表单之外。然后将默认图像添加到介质内部和上载配置文件图片的文件夹外部 如您所见,它位于介质文件夹的根目录中