Как получить доступ к другим элементам класса из ReferenceField в Mongoengine - PullRequest
0 голосов
/ 12 января 2019
class User(db.Document):
    email = db.StringField(required=True)
    first_name = db.StringField(max_length=50)

    ref = db.ReferenceField('Post')



class Post(db.Document):
    title = db.StringField(max_length=120, required=True)
    tags = db.ListField(db.StringField(max_length=30))

У меня есть два класса User и Post. Я хочу получить доступ к элементам класса User из класса Post (ref), используя:

User.objects.first().ref.title

Ошибка:

AttributeError: 'NoneType' object has no attribute 'title'

Как мне это сделать? Как получить доступ ко всем элементам, а не только к одному. Заранее спасибо.

1 Ответ

0 голосов
/ 24 января 2019

Я не верю, что вы можете сделать это с полем ссылки, вам нужно взять ссылку и найти объект через:

Post.objects(id=User.objects().first().ref["id"]).first().title

Вы могли бы, тем не менее, если вы сделали Post EmbeddedDocument of User, и вы вызываете объекты User с select_related как:

User.objects().first().select_related(1).ref.title

Или вы можете переписать интерпретацию JSON, как описано здесь: https://stackoverflow.com/a/23990828/493685

...