Как передать запросу список объектов или элементов?
Мой вопрос в том, как я могу передать список объектов или элементов в запрос:
например, у меня есть объект, который имеет 4 идентификатора пользователя, вот так :
list_of_user_id = [1 , 2 ,3 ,6]
и теперь я хочу установить CreatorUserID равным list_of_user_id , чтобы проверить, сколько пользователей из list_of_user_id существует в таблице TblAnswerQuestionRequest.
вот мой 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)
Небольшое замечание, если вы посмотрите на таблицу базы данных из вашей модели, вы увидите, что столбец внешнего ключа для CreatorUserID на самом деле будет CreatorUserID_id (или, возможно, creatoruserid_id, не совсем уверен, как он обрабатывает заглавные буквы в именах столбцов). Таким образом, ID в имени внешнего ключа немного устарел, вы, вероятно, хотите делать только CreatorUser или даже лучше creator_user, поэтому имя столбца будет creator_user_id.