CAMROID
|--accounts_app
| |--admin.py
| |--models.py
| |--urls.py
| |--views.py
|
|--camroid_app
| |--admin.py
| |--models.py
| |--urls.py
| |--views.py
|
|--camroid_project
| |--settings.py
| |--urls.py
|
|--media
| |--ProfileImg
|
|--static
| |--css
| |--js
| |--fonts
| |--images
|
|--templates
|--base.html
|--category.html
|--index.html
|--myspace.html
|--register.html
我有一个注册表单,用户可以在其中注册,他的详细信息被上传到user_auth
表,此外还有另一个模型UserProfile
,其中包含profile_img = Imagefield()
与user_auth
表有OnetoOneField
关系,用户只有在登录时才能上传他的个人资料图像。因此,用户注册时不上传图像,只能从myspace.html上传个人资料图像
accounts_app
处理所有与帐户相关的功能,如注册和登录以及
camroid_app
处理站点的实际内容[index.html,myspace.html]
更新详细信息的表单将是一项简单的任务,但在使用OnetoOneField
时上传个人资料pic是我需要帮助的地方。因为我不知道它是怎么工作的。我已经介绍了大多数解决方案,但在所有示例中,用户都是在创建用户时从django admin应用程序上载图像的。但我有一个不同的senario,我希望用户上传图像从主应用程序,而不是从django管理应用程序,加上图像只能上传时,用户已经创建
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
profile_img = models.ImageField(upload_to='ProfileImg')
def __str__(self):
return self.user.username
views.py
request.POST['action'] == 'save-upload':
if request.FILES['profile-upload'] != None:
userprofilemodel = apps.get_model('accounts_app', 'UserProfile')
profile_img = request.FILES['profile-upload']
/// your suggested code
您必须像这样在onetoonefield中输入相关名称,然后您可以像这样获得userprofile图像url
之后就这样使用
如果你不想写相关的名字,你可以这样用
我不确定第二种方法,但第一种方法会运行
相关问题 更多 >
编程相关推荐