Как я могу получить доступ через поля модели с ManyToManyField в Django - PullRequest
0 голосов
/ 01 июня 2019

У меня есть Store модель с подключением друг к другу для похожих магазинов. Как вы видите фрагмент кода, я пытаюсь получить доступ к полю score в Similarity, которое используется в качестве сквозной модели для ManyToManyField в Store модели.

Как получить прямой доступ к полю score из объекта Store?

tester.py

store = Store.objects.get(id=1)
print(store) # Store object
print(store.similar_stores.all()[0]) # Store object
print(store.similar_stores.all()[0].similarity.score) # throw the below error

AttributeError: у объекта «Магазин» нет атрибута «сходство»

models.py

class Store(TimeStampedModel):
    ...
    similar_stores = models.ManyToManyField(
        'self', through='Similarity', symmetrical=False, related_name='similar_store_of_store')


class Similarity(TimeStampedModel):
    similar_target = models.ForeignKey(Store, related_name='similar_target', on_delete=models.CASCADE)
    similar_store = models.ForeignKey(Store, related_name='similar_store', on_delete=models.CASCADE)
    score = models.FloatField(default=0.0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...