django rest framework对以10为基数的int()的文本无效:

django rest framework对以10为基数的int()的文本无效:,django,django-rest-framework,Django,Django Rest Framework,下面的RESTful API失败了,出现了一个错误,我不知道那里发生了什么 下面是序列化程序、模型和url模式的构造 序列化程序.py class PatientDataSerializer(serializers.ModelSerializer): class Meta: model = PatientData fields = ( 'data_id', 'data_type', '

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

下面是序列化程序、模型和url模式的构造

序列化程序.py

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'
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")  
 url(r'^patients/data/(?P<user_id>[0-9]+)/$', restapiviews.PatientDataListView.as_view()),
class PatientDataListView(generics.ListAPIView):
    queryset = PatientData.objects.all()
    serializer_class = PatientDataSerializer
    lookup_field='user_id'
型号.py

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'
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")  
 url(r'^patients/data/(?P<user_id>[0-9]+)/$', restapiviews.PatientDataListView.as_view()),
class PatientDataListView(generics.ListAPIView):
    queryset = PatientData.objects.all()
    serializer_class = PatientDataSerializer
    lookup_field='user_id'
url.py

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'
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")  
 url(r'^patients/data/(?P<user_id>[0-9]+)/$', restapiviews.PatientDataListView.as_view()),
class PatientDataListView(generics.ListAPIView):
    queryset = PatientData.objects.all()
    serializer_class = PatientDataSerializer
    lookup_field='user_id'

当我试图访问localhost:8080/api/patient/data/1/url时出现错误。此错误表示您试图将空
字符串或
unicode
强制转换为
int

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

但对于我的另一个使用整数作为查找字段的序列化程序,它可以正常工作。已找到错误。这是我的modelfull stacktrace中的一个错误please@Ramast,找到了错误。数据文件url应该是字符域而不是整数域。facepalm@Max通过查看stacktrace,我会假设:p很高兴事情解决了