Django получает значения полей ForeignKey из сериализатора в шаблоне - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь создать форму страницы, где форма на самом деле является сериализатором DRF (хотя я не думаю, что это на самом деле имеет большое значение).

Мне нужно иметь доступ к значениям полей издальний конец поля ForeignKey до объекта был создан.

*** Models.py ***
class Tag(models.Model):
  name = models.CharField(max_length=20)
  colour = models.CharField(max_length=20)

class Entry(models.Model):
  title = models.CharField(max_length=100)
  date = models.DateField()
  tags = models.ForeignKey(Tag)

*** Serializer.py ***
class EntrySerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Entry
        fields = '__all__'

*** views.py ***
from rest_framework.views import APIView
class Submit(APIView):
    renderer_classes = [TemplateHTMLRenderer]
    template_name = 'submit.html'

    def get(self, request, format=None):
        context = {}
        context['serializer'] = serializers.EntrySerializer(context={'request': request})
        return render(request, self.template_name, context)

    def post(self, request, format=None):
        ...

Для доступа к 2 полям объекта отлично работает следующее:

*** submit.html ***
  {% for tag in serializer.tag.iter_options %}
    {{ tag.value }}-{{ tag.display_text }}
  {% endfor %}

Тем не менее, я хотел бы также иметь возможность получить доступ к цветовому полю:

*** submit.html ***
  {% for tag in serializer.tag.iter_options %}
    {{ tag.value }}-{{ tag.colour }}
  {% endfor %}

TIA!

1 Ответ

0 голосов
/ 08 марта 2019

При копании в исходную модель поля можно получить набор запросов и выполнить итерацию:

{% for tag in serializer.tag.queryset.all %}
   {{ tag.value }}-{{ tag.colour }}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...