0
すべてのオブジェクトを取得しようとしているときにエラーが表示されます。Django Rest Frameworkでgetを呼び出すと、__init __()に予期しないキーワード引数 'context'があります
私は私のモデルを書いた:
class Message(models.Model):
created = models.DateTimeField(auto_now_add=True)
type = models.CharField(_('type'), choices=MESSAGE_TYPE, default='Invitation', max_length=100)
content = models.TextField(_('content'), blank=False)
sender = models.ForeignKey(User, related_name='sender_message', verbose_name=_("Sender"),)
recipient = models.ForeignKey(User, related_name='receiver_message', null=True, blank=True,
verbose_name=_("Recipient"))
url_profile_image = models.URLField(_('url_profile_image'), max_length=500, blank=True, default='')
class Meta:
ordering = ('created',)
マイシリアライザ:
class MessageSerializer(serializers.HyperlinkedIdentityField):
class Meta:
model = Message
fields = ('url', 'id', 'type', 'content', 'Sender', 'Recipient', 'url_profile_image')
と私の意見:
class MessageViewSet(viewsets.ModelViewSet):
queryset = Message.objects.all()
serializer_class = MessageSerializer
を、私は、メッセージのこれらの種類を "作成" することができますよdjango-adminにあります。しかし、私はそれらを手に入れることはできません。
これは全体のエラーです:
Internal Server Error: /users/messages/
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/viewsets.py", line 83, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/views.py", line 477, in dispatch
response = self.handle_exception(exc)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/views.py", line 437, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/views.py", line 474, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/mixins.py", line 47, in list
serializer = self.get_serializer(queryset, many=True)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/generics.py", line 111, in get_serializer
return serializer_class(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/relations.py", line 112, in __new__
return cls.many_init(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/relations.py", line 132, in many_init
list_kwargs = {'child_relation': cls(*args, **kwargs)}
File "/usr/local/lib/python3.5/dist-packages/rest_framework/relations.py", line 406, in __init__
super(HyperlinkedIdentityField, self).__init__(view_name, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/relations.py", line 282, in __init__
super(HyperlinkedRelatedField, self).__init__(**kwargs)
File "/usr/local/lib/python3.5/dist-packages/rest_framework/relations.py", line 106, in __init__
super(RelatedField, self).__init__(**kwargs)
TypeError: __init__() got an unexpected keyword argument 'context'
[18/Jan/2017 10:39:21] "GET /users/messages/ HTTP/1.1" 500 17769
ありがとう使用する必要があります! これは機能します。シリアライザの "Sender"と "Recipient"を "sender"と "recipient"に変更しなければなりません。 しかし、今はうまく動作します。 「HyperlinkedModelSerializer」が必要なのは単なる質問です。彼らはRestFrameworkのチュートリアルでそれを書きました。 –
@ChuckAguilar - それもまた違って、Hyperlinked ** ModelSerializer **はシリアライザです(それを使用したいかもしれません)。ハイパーリンク** IndentityField **はフィールドタイプです。 – Sayse
OH!私は今見ます!私は "HyperlinkedModelSerializer"を使いたいと思っていましたが、 "HyperlinkedIndentityField"を書きました。私はばかです。再度、感謝します! –