У меня есть 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)