Que es WSGIRequest
print(request)
<WSGIRequest: GET '/profile/'>
https://blog.csdn.net/caoshou1866/article/details/100959164
def profile(request):
# return HttpResponse("hello, success")
print('request',request)
user = request.user
email = request.user.email
created_at = request.user.created_at
return HttpResponse(f"hello, {email},{created_at}")
class UserProfile(AbstractUser):
nickname = models.CharField(null=True, blank=True, max_length=255, verbose_name='昵称')
job_title = models.CharField(max_length=50, null=True, blank=True,verbose_name='职称')
introduction = models.TextField(blank=True,null=True,verbose_name='简介')
picture = models.ImageField(upload_to='profile_pics/',null=True,blank=True,verbose_name='头像')
location = models.CharField(max_length=50,null=True,blank=True,verbose_name='城市')
personal_url = models.URLField(max_length=255, null=True, blank=True,verbose_name='个人链接')
weibo = models.URLField(max_length=255,null=True,blank=True,verbose_name='微博链接')
zhihu = models.URLField(max_length=255,null=True,blank=True,verbose_name='知乎链接')
github = models.URLField(max_length=255,null=True,blank=True,verbose_name='github链接')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
updated_at = models.DateTimeField(auto_now=True,verbose_name='更新时间')
La realización de request.user, request.user.email, request.user.created_at se debe al middleware django.contrib.auth.middleware.AuthenticationMiddleware en settings.py
2. Utilice user.is_authenticated para determinar si el usuario inició sesión.
Si utiliza user.is_authenticated determinar si el usuario está conectado, significa que está utilizando el sistema de autenticación de Django,
lo mejor es utilizar su nombre de usuario django.contrib.auth
método de inicio de sesión,
este método proporcionará el user_id
bien user_backend
en el almacenamiento de sesión,
.is_authenticated () Juzgue si el usuario ha iniciado sesión juzgando si existe user_id
y user_backend
en la sesión .
Si utiliza su propio método de inicio de sesión, es posible que no guarde user_id
ni user_backend
en session
el archivo.
Por lo tanto, django considera que su usuario no inició sesión, aunque sí lo haya hecho.
La mejor manera es utilizar el método de inicio de sesión propio de Django, combinado con este método, para determinar si el usuario ha iniciado sesión y, por lo tanto, determinar su comportamiento.
En el views.py
que puedes escribir directamente user.is_authenticated
para juzgar
def profile(request):
# return HttpResponse("hello, success")
print('request',request)
user = request.user
email = request.user.email
created_at = request.user.created_at
# return HttpResponse(f"hello, {email},{created_at}")
# print(request.COOKIES)
# print(request.session)
if user.is_authenticated:
print('yes, you logined')
return render(request, 'users/profile.html', {
'user':user})
Puede estar en el archivo html en plantillas.
{
% if user.is_authenticated %}
{
% endif %}
El archivo html en es puede ser
{
% if user.is_authenticated %}
{
% endif %}