Python 3.x 无法解析关键字';一些#u字段';到田野里去。选择包括:

Python 3.x 无法解析关键字';一些#u字段';到田野里去。选择包括:,python-3.x,django,django-models,django-views,Python 3.x,Django,Django Models,Django Views,我正在按相关模型筛选模型,但遇到问题标题中指定的一些错误 无法将关键字“bmodel”解析为字段。选择是:标题, 说明、编号、客户\用户\ id、受让人\ id 模型是这样的: 第一款车型 class AModel(BaseModel): title = models.TextField(null=True, blank=True) description = models.TextField(null=True) number = models.CharField(ma

我正在按相关模型筛选模型,但遇到问题标题中指定的一些错误

无法将关键字“bmodel”解析为字段。选择是:标题, 说明、编号、客户\用户\ id、受让人\ id

模型是这样的:

第一款车型

class AModel(BaseModel):
    title = models.TextField(null=True, blank=True)
    description = models.TextField(null=True)
    number = models.CharField(max_length=200)
    client_user = models.ForeignKey("User", related_name="client_users", null=True)
    assignee = models.ForeignKey("User", related_name="user_assignees", null=True)
class BModel(models.Model):
    amodel = models.ForeignKey("AModel", related_name="a_model", on_delete=DO_NOTHING)
    user = models.ForeignKey("User", related_name="entity_user")
第二款车型

class AModel(BaseModel):
    title = models.TextField(null=True, blank=True)
    description = models.TextField(null=True)
    number = models.CharField(max_length=200)
    client_user = models.ForeignKey("User", related_name="client_users", null=True)
    assignee = models.ForeignKey("User", related_name="user_assignees", null=True)
class BModel(models.Model):
    amodel = models.ForeignKey("AModel", related_name="a_model", on_delete=DO_NOTHING)
    user = models.ForeignKey("User", related_name="entity_user")
我的查询集

class AModelView(GenericViewSet):
    queryset = AModel.objects.all()
    serializer_class = AmodelSerializer
      
    def get_queryset(self):
      current_user = 2
      qs = super().get_queryset()
      qs = qs.filter(a_model__user_id__in=current_user)
      return qs

我如何解决这个问题?有人能帮忙吗?提前谢谢

这条线错了。您正在分配与
BModel

amodel = models.ForeignKey("AModel", related_name="a_model", on_delete=DO_NOTHING)
您需要将其更改为:

amodel = models.ForeignKey("AModel", related_name="bmodel", on_delete=DO_NOTHING)

您的查询应该可以工作。

您可能正在尝试这样的sthg。在
.filter()
中获取相关模型时,请不要将属性名称与
相关的\u名称混为一谈:


不。现在int对象不可iterable为什么我不知道,因为过滤器中的
\uu需要传递iterable,而您只传递一个int。您需要将查询更改为
a\u model\uu user\u id=current\u user
,或者确保
current\u user
是一个列表。是的,但只有一个结果,但我有更多结果。为此我该怎么办?我不明白这个问题。你希望在哪里看到更多的结果?您可以在
过滤器中使用
\uu来过滤更多用户的结果。确定有更多与id为2的用户相关的AModel结果