首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django rest框架对base 10的int()无效文本:

django rest框架对base 10的int()无效文本:
EN

Stack Overflow用户
提问于 2016-02-08 13:07:30
回答 1查看 3.3K关注 0票数 1

下面的RESTful API失败了,出错了,我不知道那里发生了什么。

这里是序列化器、模型和url模式的构造。

serializers.py

代码语言:javascript
复制
class PatientDataSerializer(serializers.ModelSerializer):
    class Meta:
        model = PatientData
        fields = (
            'data_id',
            'data_type',
            'session_id',
            'user_id',
            'start_time',
            'time_elapsed',
            'data_file_url'
        )
        lookup_field='user_id'

models.py

代码语言:javascript
复制
class PatientData(models.Model):
    class Meta:
        managed = False
        db_table = "patient_data_list"

    data_id = models.PositiveIntegerField(db_column="data_id", primary_key=True)
    data_type = models.CharField(db_column="patient_data_type", max_length=255)
    session_id = models.PositiveIntegerField(db_column="session_id")
    user_id = models.PositiveIntegerField(db_column="user_id")
    start_time = models.DateTimeField(db_column="start_time")
    time_elapsed = models.IntegerField(db_column="time_elapsed")
    data_file_url = models.IntegerField(db_column="data_file_url")  

urls.py

代码语言:javascript
复制
 url(r'^patients/data/(?P<user_id>[0-9]+)/$', restapiviews.PatientDataListView.as_view()),

restapiviews.py

代码语言:javascript
复制
class PatientDataListView(generics.ListAPIView):
    queryset = PatientData.objects.all()
    serializer_class = PatientDataSerializer
    lookup_field='user_id'

当我试图访问本地主机时会出现错误:8080/api/patient/data/1/ url

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-08 13:13:20

此错误意味着您正在尝试将空的stringunicode转换为int

我能够在本地运行您的代码,我怀疑这是因为在您的数据库中,应该是整数的字段中有空值。DRF的to_representation方法需要对int进行简单的转换,并且不检查空值。请以这种方式检查您的数据,如果这不是点粘贴您的整个跟踪错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35270436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档