django用户登陆base.html,django - Django认为用户仅在一页上登录,而在其余页面上则未登录 - 堆栈内存溢出...

我通过将其添加到base.html中进行了测试

{% if user.is_authenticated %}

You are logged in

{% endif %}

它不会在任何页面上显示它,因为我没有登录,除非我去查看某人的个人资料,然后它说我没有登录

models.py

class UserProfileManager(models.Manager):

pass

class UserProfile(models.Model):

user = models.OneToOneField(User, on_delete=models.CASCADE)

avatar = models.ImageField(upload_to='avatars', blank=True)

location = models.CharField(max_length=100, default='', blank=True)

date_of_birth = models.DateField(default='00/00/0000', null=True, blank=True)

website = models.URLField(default='', blank=True)

bio = models.TextField(default='', blank=True)

def __str__(self):

return self.user.username

def age(self):

dob = self.date_of_birth

tod = datetime.date.today()

my_age = (tod.year - dob.year) - int((tod.month, tod.day) < (dob.month, dob.day))

return my_age

def createProfile(sender, **kwargs):

if kwargs['created']:

user_profile = UserProfile.objects.created(user=kwargs['instance'])

post_save.connect(createProfile, sender=User)

views.py

def public_profile_view(request, username):

user = User.objects.get(username=username)

userprofile = UserProfile.objects.all()

# date_joined = request.user.date_joined

# last_login = request.user.last_login

context = {

'user': user,

'userprofile': userprofile,

# 'date_joined': date_joined,

# 'last_login': last_login,

}

return render(request, "/account/profile/public_profile.html", context)

def profile_edit_view(request):

userprofile = UserProfile.objects.all()

if request.method == 'POST':

form = EditProfileForm(request.POST, instance=request.user)

profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.userprofile)

if form.is_valid() and profile_form.is_valid():

user_form = form.save()

custom_form = profile_form.save(False)

custom_form.user = user_form

custom_form.save()

return redirect('profile_urls:public_profile')

else:

form = EditProfileForm(instance=request.user)

profile_form = ProfileForm(instance=request.user.userprofile)

args = {'userprofile': userprofile,}

# args.update(csrf(request))

args['form'] = form

args['profile_form'] = profile_form

return render(request, "/account/profile/profile_edit.html", args)

表格

class EditProfileForm(ModelForm):

class Meta:

model = User

fields = ('email', 'first_name', 'last_name')

class ProfileForm(ModelForm):

date_of_birth = forms.DateField(label='Date of Birth')

class Meta:

model = UserProfile

fields = ('avatar', 'location', 'website', 'date_of_birth', 'bio', 'website')

def clean(self):

cleaned_data = super().clean()

location = cleaned_data.get('location')

website = cleaned_data.get('website')

date_of_birth = cleaned_data.get('date_of_birth')

bio = cleaned_data.get('bio')

website = cleaned_data.get('website')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值