【问题标题】:Django Restful API returns Empty JsonDjango Restful API 返回空 Json
【发布时间】:2016-06-28 00:08:40
【问题描述】:

我正在使用 rest_framework 库构建一个 django restful json API,但是当我向它提交请求时它返回空 json [],即使 DB 表中有很多记录。这是我的代码

models.py

class Member(models.Model):
    email = models.EmailField()
    mobile = models.CharField(max_length=11, null=False)
    username = models.CharField(max_length=20, null= False, help_text="Username")
    password = models.CharField(max_length=15, null=False, help_text="Password")
    mobile_id = models.CharField(max_length=100, null=True, blank=True)
    joined_date = models.DateTimeField(auto_now_add=True)

serializers.py

class MemberSerializer(serializers.Serializer):
    class Meta:
        model = Member
        fields = ('email', 'mobile', 'username', 'joined_date')

views.py

class MemberAPI(viewsets.ModelViewSet):
    serializer_class = MemberSerializer
    queryset = Member.objects.all()

urls.py

router = DefaultRouter()
router.register(r'member', MemberAPI, base_name='member')
urlpatterns = router.urls

【问题讨论】:

  • 没有发生错误?你是如何调用你的 API 的?
  • 没有错误或异常,一切正常,除了只有空的 json
  • 在你的MemberAPI 中创建一个__init__ 方法并添加一个打印语句来查看它是否被调用。如果没有任何可用的调试信息,很难为您提供帮助

标签: python json django api rest


【解决方案1】:

我现在明白了。看来,我继承了一个基本的序列化泛型类 serializers.py

我应该像这样从 ModelSerializer 继承

class MemberSerializer(serializers.ModelSerializer):
    class Meta:
        model = Member
        fields = ('email', 'mobile', 'username', 'joined_date')

【讨论】:

  • 非常感谢@Vaygeth。我面临着同样的问题。这解决了它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多