Друзья, привет!
Имею в проекте django модель:
class AccountModel(models.Model):
uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
user_name = models.CharField( "Account name", null=True, blank=True, max_length=256)
@property
def task_inwork_count(self):
return WorkModel.objects.filter(account=self.pk, status=1).count()
class WorkModel(models.Model):
account = models.ForeignKey("AccountModel", on_delete=models.CASCADE)
status = models.ForeignKey("StatusOfWork", default=1, on_delete=models.CASCADE)
Также есть форма, choicer поля account я пытаюсь заполнить моделями AccountModel, у которых свойство task_inwork_count == 0
class AddWorkForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(AddWorkForm, self).__init__(*args, **kwargs)
choices = (
x
for x in AccountModel.objects.filter(
status=2, user_id=args[0]["user_id"]
)
if x.task_inwork_count == 0
)
print(choices)
self.fields["account"].queryset = choices
class Meta:
model = WorkModel
fields = ["account"]
Но получаю вот такую ошибку при инициации формы:
File ".venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File ".venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".venv\Lib\site-packages\django\contrib\auth\decorators.py", line 60, in _view_wrapper
return view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "core\views\view.py", line 38, in instagram_new_work
form = AddWorkForm({"user_id": request.user.id})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "core\forms\works.py", line 19, in __init__
self.fields["account"].queryset = choices
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".venv\Lib\site-packages\django\forms\models.py", line 1516, in _set_queryset
self._queryset = None if queryset is None else queryset.all()
^^^^^^^^^^^^
AttributeError: 'generator' object has no attribute 'all'
Как правильно отфильтровать по @property внутри модели?
Заранее спасибо за ответы)