У меня есть одна таблица MySQL, созданная с использованием класса с именем UserProfile
, а другая - с классом с именем Connection
. Я написал следующий код для извлечения каждого запроса соединения, отправленный одним пользователя и превратить имя цели в строку:Менеджер Django недоступен через экземпляр
allprofiles = UserProfile.objects.all()
for UserProfile in allprofiles:
userconnections = Connection.objects.filter(source_user=UserProfile)
for Connection in userconnections:
toplay = Connection
target_tostring = toplay.target_user
print target_tostring
Но когда я пытаюсь запустить это, Django будет выглядеть следующим образом:
AttributeError Traceback (most recent call last)
<ipython-input-6-323348f76c1f> in <module>()
1 for UserProfile in allprofiles:
----> 2 userconnections = Connection.objects.filter(source_user=UserProfile)
3 for Connection in userconnections:
4 toplay = Connection
5 target_tostring = toplay.target_user
/usr/lib/python2.7/dist-packages/django/db/models/manager.pyc in __get__(self, instance, type)
209 def __get__(self, instance, type=None):
210 if instance != None:
--> 211 raise AttributeError("Manager isn't accessible via %s instances" % type.__name__)
212 return self.manager
213
AttributeError: Manager isn't accessible via Connection instances
Что я делаю неправильно? Я написал аналогичный код в прошлом без каких-либо проблем.
Как выглядят ваши модели UserProfile и 'Connection? Измените свой вопрос и добавьте исходный код для этих моделей. –
Использовать UserProfile, то же имя, что и определение модели, для итерации не является хорошей практикой. – iMom0
@ iMom0: спасибо, что сообщили мне. –