我的UserProfile对应于Django 1.8中的User模型,我希望当用户登录时,它会自动创建一个UserProfile,但我遇到以下错误:
UserProfile matching query does not exist.
def get_or_create_user_profile(request):
user = request.user
try:
profile = user.userprofile
except UserProfile.DoesNotExist:
profile = UserProfile.objects.create(user=user)
return profile
def get_image_path(instance, filename):
formats = str(instance.id) + 'moolak' + '.' + filename.split('.')[-1]
return os.path.join('../media/images/users/', str(instance.id)+'/avatar', formats)
class UserProfile(models.Model):
user = models.OneToOneField(User)
avatar = models.ImageField(blank=True, upload_to=get_image_path, default='/static/image/avatar/male.png')
age = models.IntegerField(blank=True, validators=[MinValueValidator(3), MaxValueValidator(99)])
def save(self, *args, **kwargs):
this = UserProfile.objects.get(id=self.id)
if this.avatar != self.avatar:
this.avatar.delete(save=False)
super(UserProfile, self).save(*args, **kwargs)