我正在尝试创建一个页面表单,其中该表单实际上是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!
答案 0 :(得分:0)
通过深入研究原始字段模型,可以获得查询集并对其进行迭代:
{% for tag in serializer.tag.queryset.all %}
{{ tag.value }}-{{ tag.colour }}
{% endfor %}