如何为查询提供对象或项目列表?
How to give a query a list of objects or items?
我的问题是如何为查询提供对象或项目列表:
例如,我有一个对象,它有 4 个用户 ID,如下所示:
list_of_user_id = [1 , 2 ,3 ,6]
现在我想将 CreatorUserID
设置为等于 list_of_user_id
以检查 list_of_user_id
中有多少用户存在于 TblAnswerQuestionRequest
table 中。
这是我的 Model.py :
class TblAnswerQuestionRequest(models.Model):
text = TextField(verbose_name='محتویات درخواست',max_length=4000, blank=True, null=True)
CreatorUserID = models.ForeignKey(Members, on_delete=models.PROTECT, null=True, blank=True)
knowledge_request = models.ForeignKey(TblQuestionRequest, on_delete=models.PROTECT, null=True, blank=True)
CreateDate = IntegerField('تاریخ ثبت', default=LibAPADateTime.get_persian_date_normalized(), null=True, blank=True)
create_hour = models.TimeField(default=datetime.datetime.now(), null=True, blank=True)
Status = IntegerField('وضعیت', default=1,choices=StatusChoices, null=True, blank=True)
def __str__(self):
return str(self.id)
我想要的是这样的:
Question_Users = TblAnswerQuestionRequest.objects.filter(CreatorUserID = list_of_user_id)
您可能想使用 __in
- 请参阅 https://docs.djangoproject.com/en/4.0/ref/models/querysets/#in
Question_Users = TblAnswerQuestionRequest.objects.filter(CreatorUserID_id__in = list_of_user_id)
注意事项,如果您从模型中查看数据库 table,您会发现 CreatorUserID
的外键列实际上是 CreatorUserID_id
(或者可能 creatoruserid_id
,不确定它如何处理列名中的大写字母)。所以外键名称中的 ID
有点过时了,你可能只想做 CreatorUser
甚至更好的 creator_user
,所以列名是 creator_user_id
.
我的问题是如何为查询提供对象或项目列表:
例如,我有一个对象,它有 4 个用户 ID,如下所示:
list_of_user_id = [1 , 2 ,3 ,6]
现在我想将 CreatorUserID
设置为等于 list_of_user_id
以检查 list_of_user_id
中有多少用户存在于 TblAnswerQuestionRequest
table 中。
这是我的 Model.py :
class TblAnswerQuestionRequest(models.Model):
text = TextField(verbose_name='محتویات درخواست',max_length=4000, blank=True, null=True)
CreatorUserID = models.ForeignKey(Members, on_delete=models.PROTECT, null=True, blank=True)
knowledge_request = models.ForeignKey(TblQuestionRequest, on_delete=models.PROTECT, null=True, blank=True)
CreateDate = IntegerField('تاریخ ثبت', default=LibAPADateTime.get_persian_date_normalized(), null=True, blank=True)
create_hour = models.TimeField(default=datetime.datetime.now(), null=True, blank=True)
Status = IntegerField('وضعیت', default=1,choices=StatusChoices, null=True, blank=True)
def __str__(self):
return str(self.id)
我想要的是这样的:
Question_Users = TblAnswerQuestionRequest.objects.filter(CreatorUserID = list_of_user_id)
您可能想使用 __in
- 请参阅 https://docs.djangoproject.com/en/4.0/ref/models/querysets/#in
Question_Users = TblAnswerQuestionRequest.objects.filter(CreatorUserID_id__in = list_of_user_id)
注意事项,如果您从模型中查看数据库 table,您会发现 CreatorUserID
的外键列实际上是 CreatorUserID_id
(或者可能 creatoruserid_id
,不确定它如何处理列名中的大写字母)。所以外键名称中的 ID
有点过时了,你可能只想做 CreatorUser
甚至更好的 creator_user
,所以列名是 creator_user_id
.