python - 用户在 django 中拥有数据
问题描述
我希望用户拥有他们的数据,但这是我不断收到的错误“无法将关键字“商家”解析到字段中。选择有:date_added、id、order、order_id、product、product_id、quantity”
模型.py
class Merchant(models.Model):
user=models.OneToOneField(User,on_delete=models.CASCADE, primary_key=True)
class Product(models.Model):
merchant=models.ForeignKey(Merchant, on_delete=models.CASCADE)
class OrderItem(models.Model):
product=models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
视图.py
def users_homepage(request):
itemsordered=OrderItem.objects.filter(merchant=request.user.merchant).order_by('date_added')
预先感谢。
解决方案
AnOrderItem
没有merchant
字段,因此您不能对此进行过滤,或者至少不能直接过滤。您可以通过两个连续的下划线 ( ) 来“查看”关系__
:
def users_homepage(request):
itemsordered=OrderItem.objects.filter(
product__merchant__user=request.user
).order_by('date_added')
# …
注意:通常使用
settings.AUTH_USER_MODEL
[Django-doc]引用用户模型比直接使用User
模型 [Django-doc]更好。有关更多信息,您可以查看文档的引用User
模型部分。
推荐阅读
- python - 计算嵌套列表中元素的递归函数的大 O
- android-room - 将项目的 CardView 信息传递给另一个活动
- amazon-web-services - Terraform:无法启动 ECS Fargate 启动类型
- android - 没有分析的 Firebase Crashlytics
- java - 如何在 Java 中将图像旋转 90 度
- java - JSR352 如何防止同一作业运行两次?
- http - HttpClient v5 ConnectionBackoffStrategy 或 HttpRequestRetryStrategy 中的混淆配置
- python - 如何重置命令 discord.py 的冷却时间
- javascript - 反应,redux 无法从商店获取状态
- oracle - ORA-00907: 缺少右括号我找不到错误