Набор запросов не пустой в оболочке django, но пустой в функции - PullRequest
0 голосов
/ 11 мая 2019

В моей views.py:

есть следующая функция
def edit_theorem(theorem):
  print(type(theorem))
  print(theorem.id)
  old_list = theorem.included_elements.all()
  print(old_list)
  ...

Выходы этих функций печати:

<class 'app.models.Theorem'>
65
<QuerySet []>

Однако, когда я запускаю python manage.py shell, from app.models import *, t=Theorem.objects.get(id=65), print(t.included_elements.all()), он печатает непустой набор запросов.

Почему?

Мой models.py выглядит так:

class Element(models.Model):
  included_elements = models.ManyToManyField('Element', through='IncludedElements')
  ...

class IncludedElements(models.Model):
  ...

def Theorem(Element):
  ...

БД - это PostgreSQL.

1 Ответ

0 голосов
/ 11 мая 2019

я не уверен, что вы делаете, прежде чем вызывать функцию edit_theorm , но я думаю, что именно в этом проблема попробовать

def edit_theorem(theorem_id):
  theorem = Theorem.objects.get(id=theorem_id)
  old_list = theorem.included_elements.all()
  print(old_list)

def edit_theorem(request, id):
  //action within the view

  edit_theorem(id)

  //other action within the view

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...