在 Django 中提取与用户帐户关联的数据
Pulling data associated with user account in Django
我正在使用以下语法在 Django 中创建模型。该模型具有注册用户的外键。但是,我想序列化此模型,该模型将 return 一个 Json 文件仅与登录用户相关联。你能给出你的建议吗?或者是否有其他方法可以使用不同的方法从模型中提取信息?
class Education(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
school = models.CharField(max_length=50)
year = models.CharField(max_length=10)
样张
例如,它只会显示与帐户关联的第一个字段
要过滤与用户相关的对象,只需掌握用户并根据用户应用过滤器。
user_education_queryset = Education.objects.filter(user=user)
如果您在请求上下文中用户对象可用的视图中执行此操作,您可以简单地执行 user=request.user
注意:用户必须登录,否则这将 return 匿名将无法查询数据库的用户对象。
总结:
获取用户对象,并使用获取的用户对象在教育模型中按用户字段进行过滤。
mike = User.objects.get(id=1) # or mike = User.objects.get(username='mike')
然后
mike_education_query = Education.objects.filter(user=mike)
由于这些建议,我能够使用以下代码查询每个用户的结果:
class EducationViewSet(viewsets.ModelViewSet):
serializer_class = EducationSerializer
def get_queryset(self):
user = self.request.user
account = User.objects.get(id=user.id)
return Education.objects.filter(user=account)
我正在使用以下语法在 Django 中创建模型。该模型具有注册用户的外键。但是,我想序列化此模型,该模型将 return 一个 Json 文件仅与登录用户相关联。你能给出你的建议吗?或者是否有其他方法可以使用不同的方法从模型中提取信息?
class Education(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
school = models.CharField(max_length=50)
year = models.CharField(max_length=10)
样张
例如,它只会显示与帐户关联的第一个字段
要过滤与用户相关的对象,只需掌握用户并根据用户应用过滤器。
user_education_queryset = Education.objects.filter(user=user)
如果您在请求上下文中用户对象可用的视图中执行此操作,您可以简单地执行 user=request.user
注意:用户必须登录,否则这将 return 匿名将无法查询数据库的用户对象。
总结:
获取用户对象,并使用获取的用户对象在教育模型中按用户字段进行过滤。
mike = User.objects.get(id=1) # or mike = User.objects.get(username='mike')
然后
mike_education_query = Education.objects.filter(user=mike)
由于这些建议,我能够使用以下代码查询每个用户的结果:
class EducationViewSet(viewsets.ModelViewSet):
serializer_class = EducationSerializer
def get_queryset(self):
user = self.request.user
account = User.objects.get(id=user.id)
return Education.objects.filter(user=account)