【问题标题】:django rest framework - username field not rendering in browsable api html formdjango rest 框架 - 用户名字段未以可浏览的 api html 表单呈现
【发布时间】:2020-06-26 01:58:37
【问题描述】:

Django Rest 框架没有在我的可浏览 api html 表单中显示 username 字段,但是当我在下面的代码中注释掉用户名时,它在我的可浏览 api html 表单中显示用户名字段。我是 Django 新手,所以任何人都可以在这里帮助我

from rest_framework import serializers
from .models import Note

class NoteSerializer(serializers.ModelSerializer):
    url = serializers.HyperlinkedIdentityField(view_name='note-detail', lookup_field='pk')
    #username = serializers.StringRelatedField(many=False)
    class Meta:
        model = Note
        fields = ['url', 'id', 'username', 'note_text', 'created_date', 'updated_date']

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    StringRelatedField 用于表示使用__str__ 方法计算目标结果的关系。如果您查看source code,您会注意到StringRelatedField 只是只读的。由于无法编辑该值,因此您在可浏览的 API HTML 表单中看不到它。

    一旦您注释了该行,就会使用外键关系并返回用户的 ID。在这种情况下,您确实会在表单中看到字段username,但该值不是字符串而是整数。

    我认为没有办法使StringRelatedField 在表单中可编辑。更多信息请查看相关SO post

    【讨论】:

      【解决方案2】:

      model serializers根据模型自动为您生成一组字段

      【讨论】:

        猜你喜欢
        • 2016-04-04
        • 2013-12-27
        • 1970-01-01
        • 2016-08-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-06
        • 1970-01-01
        • 2017-03-22
        相关资源
        最近更新 更多