擅长:python、mysql、java
<p>为此,您需要自定义序列化程序字段。在</p>
<p>以下是python 3的片段:</p>
<pre><code>class DisplayNameWritableField(serializers.ChoiceField):
def __init__(self, **kwargs):
self.html_cutoff = kwargs.pop('html_cutoff', self.html_cutoff)
self.html_cutoff_text = kwargs.pop('html_cutoff_text', self.html_cutoff_text)
self.allow_blank = kwargs.pop('allow_blank', False)
super(ChoiceField, self).__init__(**kwargs)
def to_representation(self, value):
return self.choices.get(value, value)
def bind(self, field_name, parent):
super().bind(field_name, parent)
self.choices = parent.Meta.model._meta.get_field(field_name).choices
</code></pre>
<p>然后:</p>
^{pr2}$
<p>不过,这有点老套,所以并不是所有的auto-docs引擎都能正确地检测到选择,尽管这很好用。在</p>
<p>您可能还喜欢<a href="https://github.com/encode/django-rest-framework/issues/1755" rel="nofollow noreferrer">https://github.com/encode/django-rest-framework/issues/1755</a></p>