2016-04-15 10 views
0

私はブラウザを介して読み取り専用データベースからデータにアクセスするためにdjango restフレームワークを使用しています。私が訪問してるURLは次のとおりです。これは私のURLのファイルがdjango restフレームワークビュー、unicodeオブジェクトはisoformat属性を持たない

'unicode' object has no attribute 'isoformat' 
exception location: *dirs*/python2.7/site-packages/rest_framework/fields.py in to_representation, line 1141 

です:私はエラーを取得しています

domain.com/api/data 

from pypackage.api import views as api_views 
api_router = routers.DefaultRouter() 
api_router.register('data', api_views.DataViewSet) 

urlpatterns += [ 
    url('^api/', include(api_router.urls)) 
] 

と私のフレームワークビューファイル:

class DataViewSet(viewsets.ModelViewSet): 
    queryset = ReadOnlyTable.objects.values('data1', 'data2', 'data3').distinct().order_by('data3') 
    serializer_class = DataSerializer 

およびserizlizers.py

class DataSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = ReadOnlyTable 
     fields = ('data1', 'data2', 'data3') 

+0

ここでは、実際のクエリセットを 'queryset = ReadOnlyTable.objects.values( 'data1'、 'data2'、 'data3')。distinct()またはder_by( 'data3') '、あなたはdictsのリストを渡しています。 – trinchet

答えて

0

問題はここにある:

queryset = ReadOnlyTable.objects.values('data1', 'data2', 'data3').distinct().order_by('data3') 

あなたが何かのように行うことができるように.valuesは、dictsのリストを返しますので、あなたは、代わりに実際のクエリセットを使用する必要があります:あなたが心の中で

queryset = ReadOnlyTable.objects.distinct('data1', 'data2', 'data3').order_by('data3') 

テイクをあなたがPostgreSQLを使用している場合.distinct(...fields...)することができます

+0

これは問題ではないと思います。 'ReadOnlyTable.objects.all()'も同じエラーを返します。 – smilebomb

+0

それから、その1つの問題がありますが、間違いなく、私が投稿したものはその1つです。なぜなら、 'to_representation'は反復が文字列のリストのために失敗し、ReadOnlyTableインスタンスのリスト – trinchet

関連する問題