আমি জ্যাঙ্গো রেস্ট ফ্রেমওয়ার্কে একটি প্রকল্প তৈরি করছি যেখানে ব্যবহারকারীরা তাদের ওয়াইন ভান্ডারটি দেখতে লগইন করতে পারেন। আমার মডেলভিউসেটস ঠিকঠাক কাজ করছিল এবং হঠাৎ করেই আমি হতাশার ত্রুটি পেয়ে যাই:
"ব্যবহারকারীর বিবরণ" নামটি ব্যবহার করে হাইপারলিঙ্কযুক্ত সম্পর্কের জন্য URL টি সমাধান করতে পারেনি। আপনি আপনার এপিআইতে সম্পর্কিত মডেলটি অন্তর্ভুক্ত করতে ব্যর্থ হতে পারেন, বা
lookup_field
এই ক্ষেত্রের বৈশিষ্ট্যটি ভুলভাবে কনফিগার করেছেন ।
ট্রেসব্যাক দেখায়:
[12/Dec/2013 18:35:29] "GET /bottles/ HTTP/1.1" 500 76677
Internal Server Error: /bottles/
Traceback (most recent call last):
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/viewsets.py", line 78, in view
return self.dispatch(request, *args, **kwargs)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
return view_func(*args, **kwargs)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/views.py", line 399, in dispatch
response = self.handle_exception(exc)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/views.py", line 396, in dispatch
response = handler(request, *args, **kwargs)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/mixins.py", line 96, in list
return Response(serializer.data)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/serializers.py", line 535, in data
self._data = [self.to_native(item) for item in obj]
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/serializers.py", line 325, in to_native
value = field.field_to_native(obj, field_name)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/relations.py", line 153, in field_to_native
return self.to_native(value)
File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/relations.py", line 452, in to_native
raise Exception(msg % view_name)
Exception: Could not resolve URL for hyperlinked relationship using view
name "user-detail". You may have failed to include the related model in
your API, or incorrectly configured the `lookup_field` attribute on this
field.
আমার কাছে একটি কাস্টম ইমেল ব্যবহারকারী মডেল রয়েছে এবং মডেলগুলিতে বোতল মডেল রয়েছে pyপি:
class Bottle(models.Model):
wine = models.ForeignKey(Wine, null=False)
user = models.ForeignKey(User, null=False, related_name='bottles')
আমার সিরিয়ালাইজার:
class BottleSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Bottle
fields = ('url', 'wine', 'user')
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('email', 'first_name', 'last_name', 'password', 'is_superuser')
আমার মতামত:
class BottleViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows bottles to be viewed or edited.
"""
queryset = Bottle.objects.all()
serializer_class = BottleSerializer
class UserViewSet(ListCreateAPIView):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all()
serializer_class = UserSerializer
এবং অবশেষে ইউআরএল:
router = routers.DefaultRouter()
router.register(r'bottles', views.BottleViewSet, base_name='bottles')
urlpatterns = patterns('',
url(r'^', include(router.urls)),
# ...
আমার কোনও ব্যবহারকারীর বিশদ দর্শন নেই এবং আমি এই সমস্যাটি কোথা থেকে আসতে পারে তা দেখতে পাচ্ছি না। কোন ধারনা?
ধন্যবাদ