我的注册表不会将图像保存到我的 S3 Bucket

问题描述

我快疯了,不知道发生了什么。我创建了一个注册页面,除了图像之外的所有内容都保存了。但是,如果用户确实登录,即使图像没有保存。在配置文件模板中,他们可以上传它,它会保存得很好。我需要它保存在我的注册表中。我也知道这不是用户体验的想法,但需要这种方式,以便管理员可以设置用户。我知道我的 AWS S3 在我的 IAM 和我的 settings.py 文件中设置正确。下面是我的代码

查看

request.post

表格

def register(request):
# techs = Employee.objects.all()
# empFilter = EmployeeFilter(request.GET,queryset=techs)
# techs = empFilter.qs
# copyTech = techs[0]


if request.method == 'POST':
    user_form = UserRegisterForm(request.POST)

    if user_form.is_valid():
        user_form.save()
    
    user_id = User.objects.get(username=user_form.cleaned_data['username'])
    user_profile = Profile.objects.get(user=user_id)
    pdb.set_trace()
    profile_form = ProfileRegisterForm(request.POST,request.FILES,instance=user_profile)

    if profile_form.is_valid():
        profile_form.save()
        return redirect('clearview:login')
else:
    profile_form = ProfileRegisterForm()
    user_form = UserRegisterForm()

context = {
    'user_form': user_form,'profile_form': profile_form,}

return render(request,'users/register.html',context)enter code here

型号

class UserRegisterForm(UserCreationForm):
   email = forms.EmailField()

   class Meta:
      model = User
      fields = ['username','email','password1','password2']

class ProfileRegisterForm(forms.ModelForm):

    CROP_SETTINGS = {'size': (300,300),'crop': 'smart'}
    locationName = forms.ChoiceField(required=True,choices=OPTIONS)
    image = ThumbnailerImageField(upload_to='upload_image/',resize_source=CROP_SETTINGS,null=True,blank=True)

    class Meta:
       model = Profile
       fields = ['fullName','image','bio','position','locationName']

html 模板

CROP_SETTINGS = {'size': (300,'crop': 'smart'}

class Profile(models.Model):
   user = models.OnetoOneField(User,on_delete=models.CASCADE)
   image = ThumbnailerImageField(upload_to='upload_image/',blank=True)
   bio = models.TextField(blank=True,null=True)
   fullName = models.CharField(max_length=255,blank=True,null=True)
   position = models.CharField(max_length=255,null=True)
   locationName = models.CharField(max_length=255,null=True)


 @receiver(post_save,sender=User)
 def create_profile(sender,instance,created,**kwargs):
    if created:
        Profile.objects.create(user=instance)


 @receiver(post_save,sender=User)
 def save_profile(sender,**kwargs):
     instance.profile.save()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...