3

機能を作成します。新しいExtendedUserを提出する際には、1対1のリアリゼーションでユーザーを作成する必要があります。ジャンゴ1 1つのシリアライザに私はExtendedUserにデフォルトのユーザー・モデルを拡張し

しかし、私はこのエラーを取得しています:

User: myusername needs to have a value for field "user" before this many-to-many relationship can be used.

トレースバック:POSTの

Environment: 


Request Method: POST 
Request URL: http://localhost:8000/users/ 

Django Version: 1.10.4 
Python Version: 2.7.12 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'rest_framework', 
'api'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 



Traceback: 

File "C:\Python27\lib\site-packages\django\core\handlers\exception.py" in inner 
    39.    response = get_response(request) 

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "C:\Python27\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view 
    58.   return view_func(*args, **kwargs) 

File "C:\Python27\lib\site-packages\rest_framework\viewsets.py" in view 
    83.    return self.dispatch(request, *args, **kwargs) 

File "C:\Python27\lib\site-packages\rest_framework\views.py" in dispatch 
    477.    response = self.handle_exception(exc) 

File "C:\Python27\lib\site-packages\rest_framework\views.py" in handle_exception 
    437.    self.raise_uncaught_exception(exc) 

File "C:\Python27\lib\site-packages\rest_framework\views.py" in dispatch 
    474.    response = handler(request, *args, **kwargs) 

File "C:\Python27\lib\site-packages\rest_framework\mixins.py" in create 
    21.   self.perform_create(serializer) 

File "C:\Python27\lib\site-packages\rest_framework\mixins.py" in perform_create 
    26.   serializer.save() 

File "C:\Python27\lib\site-packages\rest_framework\serializers.py" in save 
    214.    self.instance = self.create(validated_data) 

File "C:/Users/ozbar/PycharmProjects/usnccm/usnccm-api\api\resources\users\serializers\extended_user.py" in create 
    15.   user = User.objects.create(**user_data) 

File "C:\Python27\lib\site-packages\django\db\models\manager.py" in manager_method 
    85.     return getattr(self.get_queryset(), name)(*args, **kwargs) 

File "C:\Python27\lib\site-packages\django\db\models\query.py" in create 
    397.   obj = self.model(**kwargs) 

File "C:\Python27\lib\site-packages\django\contrib\auth\base_user.py" in __init__ 
    68.   super(AbstractBaseUser, self).__init__(*args, **kwargs) 

File "C:\Python27\lib\site-packages\django\db\models\base.py" in __init__ 
    550.        setattr(self, prop, kwargs[prop]) 

File "C:\Python27\lib\site-packages\django\db\models\fields\related_descriptors.py" in __set__ 
    499.   manager = self.__get__(instance) 

File "C:\Python27\lib\site-packages\django\db\models\fields\related_descriptors.py" in __get__ 
    476.   return self.related_manager_cls(instance) 

File "C:\Python27\lib\site-packages\django\db\models\fields\related_descriptors.py" in __init__ 
    783.         (instance, self.source_field_name)) 

Exception Type: ValueError at /users/ 
Exception Value: "<User: oz>" needs to have a value for field "user" before this many-to-many relationship can be used. 

Validated_data object`s値ジャンゴ - 残りのWebビュー経由:

{u'user': OrderedDict([(u'username', u'oz'), (u'email', u'[email protected]'), (u'groups', []), (u'is_staff', True)]), u'shirt_size': u'm'} 
+0

完全なトレースバックを投稿できますか? – lucasnadalutti

+0

はい、私はちょうど –

+0

Hmを追加しました。このエラーは本当に奇妙でOneToOne関係では発生していないはずです。これが完全な「ExtendedUser」モデルであり、すべての移行が実行されていますか? 'validated_data'を' create'メソッドが受け取ったものとして出力して、ここにも投稿してください。 – lucasnadalutti

答えて

1

のためのわかりましたこの問題はdjango-rest-frameworkやPythonのバージョンとは関係ありません。

私が単にしようとしたとして、Djangoの== 1.10の問題のようです:Djangoのshell

User.objects.create(user="hello", email="[email protected]", groups=[], is_staff=False)

とまったく同じエラーを受け取りました。しかし、新しいバージョンのdjangoを試しても問題は解決されません。

私は、このコマンドを使用してジャンゴをインストールするときにことに気づいた:

pip install django

それはdjango==1.10ではなく、最新バージョンをインストールします。

pip uninstall django
pip install django==1.9.12

django==1.9.12を使用して、あなたはときにそれを提供し、あなたのUserSerializerから完全groupsを削除しないようにする必要があります:あなたが誤ってこの古いバージョンをインストールした場合、私はジャンゴをアンインストールしてから最新バージョンをインストールすることをお勧めPOSTを行っています。

関連する問題