所以我剛開始使用Django Rest Framework,我的一個序列化器有一個MultipleChoiceField,其中的選擇只是其他模型的所有實例。Django Rest Framework具有動態選項的MultipleChoiceField
這裏是有問題的串行:
class ObjectTypeSerializer(serializers.ModelSerializer):
def get_field_choices():
return sorted([
(p.id, p.name) for p in Parameter.objects.all()
])
object_fields = serializers.MultipleChoiceField(
choices=get_field_choices()
)
instance_fields = serializers.MultipleChoiceField(
choices=get_field_choices()
)
labels = serializers.SlugRelatedField(
queryset=Label.objects.all(),
many=True, allow_null=True, slug_field='name'
)
class Meta:
model = ObjectType
fields = ('id', 'name', 'object_fields',
'instance_fields', 'labels')
然而,當我添加一個新的參數對象,不更新的選擇。在常規的Django的形式,我解決了這個簡單的使用
forms.ChoiceField(choices=[(p.id, p.name) for p in Parameter.objects.all()])
,並在無需重新啓動服務器添加一個新的參數,將更新的選擇。我如何用Django Rest Framework序列化器完成同樣的事情?
任何幫助表示讚賞。謝謝!