python - 使用 Django ORM 查询数据以返回属于用户的特定数据
问题描述
所以我正在尝试构建一个分类帐应用程序。当新用户注册时,他们会创建一个链接到他们的新企业帐户 (ForeignKey)。这是我的模型:
User = get_user_model()
class Business_Account(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
business_name = models.CharField(max_length=50)
Type_of_service = models.CharField(choices=SERVICE_CATEGORIES, max_length=50)
business_email_address = models.EmailField(max_length=254)
class Meta:
verbose_name = "Business_Account"
verbose_name_plural = "Business_Accounts"
def __str__(self):
return self.business_name
现在,我想创建一个获取请求视图,该视图可以查询并返回属于特定用户的企业帐户。我当前的视图只返回数据库中所有可用的业务帐户,无论哪个用户登录。这是我的看法:
class AddBusinessAcctView(APIView):
def get_object(self):
try:
return Business_Account.objects.all()
except:
raise status.HTTP_404_NOT_FOUND
def get(self,request):
queryset = self.get_object()
serializer = BusinessAcctSerializer(queryset, many=True)
return Response(data=serializer.data, status=status.HTTP_200_OK)
现在,如何查询属于特定用户的企业帐户?提前致谢
解决方案
通常,您将拥有身份验证和尝试为其检索信息的登录用户。假设您要执行此操作,则该用户在request
对象中可用。
Business_Account.objects.get(user=request.user)
但总的来说,你可以这样做:
user = User.objects.get(username='john')
Business_Account.objects.get(user=request.user)
# or
Business_Account.objects.get(user_id=123456)
推荐阅读
- c++ - QPlainTextEdit 拒绝更改其背景颜色 (Qt / C++)
- django - Django 的 m2m_changed 触发器未正确触发
- amazon-s3 - 使用低级 java API 的 Amazon S3 分段上传仅上传单个部分
- google-apps-script - 禁用电子表格副本 - Google 表格
- node.js - puppeteer fileChooser:如何使用 URL 而不是本地文件路径?
- python - 熊猫获得价值百分位
- docker - Dockerfile 构建镜像失败
- apache-kafka - Kafka设置vip地址到kafka集群
- sql - 如何在 Oracle 中从当前时间返回 24 小时
- python - 如何在不使用熊猫或导入的情况下按组求和/聚合