Я пытаюсь отобразить «вложенную» модель в своем ответе API, и у меня возникают проблемы при формировании данных.
У меня есть модель, из которой вызывается API:
что-то вроде
class Rules(Model):
conditions = models.ManyToManyField(RulesPoliciesConditions)
...
...
class RulesPoliciesConditions(Model):
rules = models.ForeignKey(Rules, ...)
policies = models.ForeignKey(Policy, ...)
Правила и политики являются их собственными моделями с несколькими текстовыми полями (имя, псевдоним, отметка времени и т. Д.)
Моя проблема заключается в том, что при использовании модели правил вызывается поле с именем conditions
, отображаются только правила и политики PK.Я хочу получить доступ к другим атрибутам, таким как имя, временная метка, псевдоним и т. Д.
Я пытался заставить свои поля (в моем сериализаторе) пытаться вызывать так же, как "condition__rules__name", но это недопустимо, я также пробовал "условия".rules.name ", что также недопустимо.Может быть, я использую неправильное поле в моем сериализаторе, я пытаюсь conditions = serializers.SlugRelatedField(many=True, queryset=q, slug_field="id")
Я собираюсь отобразить что-то вроде:
conditions: [
{
rules: {id: rulesId, name: rulesName, ...},
policies: {id: policiesId, name: policiesName, ...}
}, ...
]
или даже четное: условия: [{rules: rulesName ,icies :iciesName}, ...]
, поскольку сейчас он просто возвращает rulesId и policyId и не «знает» о других полях
РЕДАКТИРОВАТЬ:Я нашел соответствующий вопрос по SO, но не смог получить соответствующий ответ Django REST Framework: Добавить поле из связанного объекта в ModelSerializer