无法获取 Django 中登录用户的数据
Cannot get data of logged in User in Django
在这里尊重每一个人。
我有来自一个应用程序的 CustomUser model
,以及来自另一个应用程序的 Field
模型。我通过 ManyToMany
.
在 CustomUser model
中建立了与 Field
模型的连接
Field is for interested fields, and in signup form I have input like "In What do you have interests?"
我可以轻松获取其他数据,例如用户名、date_of_birth、电子邮件...但无法获取此 interests
。它returnscourses.Field.None
这里是models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from courses.models import Field
class CustomUser(AbstractUser):
username = models.CharField(max_length=32 , verbose_name="Login", unique=True, )
first_name = models.CharField(max_length=64, verbose_name="Ismingiz", blank=False, null=False)
second_name = models.CharField(max_length=64, verbose_name="Familyangiz", blank=False, null=False)
# & dob = date of birth
dob = models.DateField(auto_now_add=False, verbose_name="Yoshingiz", blank=False, null=True)
gender_choices = [("e", "Erkak"), ("a", "Ayol")]
gender = models.CharField(choices=gender_choices, verbose_name="Jinsingiz", default="e", max_length=1)
-> interests = models.ManyToManyField(Field, verbose_name="Qiziqishlaringiz")
longitude = models.CharField(max_length=256, verbose_name="Yashash joyingiz (uzunlik)", null=True, blank=True)
latitude = models.CharField(max_length=256, verbose_name="Yashash joyingiz (kenglik)", null=True, blank=True)
这是我的 views.py 文件,来自 courses
App
from django.shortcuts import render
from .models import Center
from .serializers import CenterSerializer, UserSerializer
from rest_framework import generics
from django.contrib.auth import get_user_model
from rest_framework.response import Response
from decimal import Decimal
from slugify import slugify
import operator
from rest_framework.decorators import api_view
...
other views here
...
def center_list(request):
if request.method == 'GET':
dorilar = Center.objects.all()
serializers = CenterSerializer(dorilar, many=True)
dorixonalar = []
uzunlik = request.GET.get('uz')
kenglik = request.GET.get('keng')
------> print(request.user.interests)
interests = request.GET.get('interest').split(",")
if uzunlik and kenglik:
uzunlik = Decimal(uzunlik)
kenglik = Decimal(kenglik)
location = Decimal(uzunlik + kenglik)
dorixonalar = yaqinlik_boyicha_filter(dorilar, location, interests)
serializers = CenterSerializer(dorixonalar, many=True)
return Response(serializers.data)
else:
return Response(serializers.data)
提前致谢。 :)
request.user.interests 是经理。您需要:
print(request.user.interests.all())
在这里尊重每一个人。
我有来自一个应用程序的 CustomUser model
,以及来自另一个应用程序的 Field
模型。我通过 ManyToMany
.
CustomUser model
中建立了与 Field
模型的连接
Field is for interested fields, and in signup form I have input like "In What do you have interests?"
我可以轻松获取其他数据,例如用户名、date_of_birth、电子邮件...但无法获取此 interests
。它returnscourses.Field.None
这里是models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
from courses.models import Field
class CustomUser(AbstractUser):
username = models.CharField(max_length=32 , verbose_name="Login", unique=True, )
first_name = models.CharField(max_length=64, verbose_name="Ismingiz", blank=False, null=False)
second_name = models.CharField(max_length=64, verbose_name="Familyangiz", blank=False, null=False)
# & dob = date of birth
dob = models.DateField(auto_now_add=False, verbose_name="Yoshingiz", blank=False, null=True)
gender_choices = [("e", "Erkak"), ("a", "Ayol")]
gender = models.CharField(choices=gender_choices, verbose_name="Jinsingiz", default="e", max_length=1)
-> interests = models.ManyToManyField(Field, verbose_name="Qiziqishlaringiz")
longitude = models.CharField(max_length=256, verbose_name="Yashash joyingiz (uzunlik)", null=True, blank=True)
latitude = models.CharField(max_length=256, verbose_name="Yashash joyingiz (kenglik)", null=True, blank=True)
这是我的 views.py 文件,来自 courses
App
from django.shortcuts import render
from .models import Center
from .serializers import CenterSerializer, UserSerializer
from rest_framework import generics
from django.contrib.auth import get_user_model
from rest_framework.response import Response
from decimal import Decimal
from slugify import slugify
import operator
from rest_framework.decorators import api_view
...
other views here
...
def center_list(request):
if request.method == 'GET':
dorilar = Center.objects.all()
serializers = CenterSerializer(dorilar, many=True)
dorixonalar = []
uzunlik = request.GET.get('uz')
kenglik = request.GET.get('keng')
------> print(request.user.interests)
interests = request.GET.get('interest').split(",")
if uzunlik and kenglik:
uzunlik = Decimal(uzunlik)
kenglik = Decimal(kenglik)
location = Decimal(uzunlik + kenglik)
dorixonalar = yaqinlik_boyicha_filter(dorilar, location, interests)
serializers = CenterSerializer(dorixonalar, many=True)
return Response(serializers.data)
else:
return Response(serializers.data)
提前致谢。 :)
request.user.interests 是经理。您需要:
print(request.user.interests.all())