#django-rest-framework
#django-rest-framework
Вопрос:
Смотрите, я не знаю, что это на самом деле очень странная ошибка, которую я получаю.
Внутри приложения компании
views.py
class CompanyView(generics.ListCreateAPIView):
queryset = CompanyProfile.objects.all()
serializer_class = RegisterationCompanySerializer
permission_classes = (permissions.IsAuthenticated,)
def post(self, request, *args, **kwargs):
import pdb; pdb.set_trace() #check weather post request is getting called?
return self.create(request, *args, **kwargs)
def get_serializer(self, *args, **kwargs):
import pdb; pdb.set_trace() #check weather post serializer is getting called?
user_id = self.request.user.id
serializer_class = self.get_serializer_class()
.....
kwargs['data'] = draft_request_data
return serializer_class(*args, **kwargs)
urls.py внутри приложения компании
urlpatterns = [
path('', include(router.urls)),
## Register Company Process
# path('List/', ListCompanyView.as_view()),
path('Reg/', CompanyView.as_view()),
]
serializer.py
class RegisterationCompanySerializer(serializers.ModelSerializer):
class Meta:
model = CompanyProfile
fields = '__all__'
extra_kwargs = {
'short_name': {'required': True},
......
'user' : {'required': True},
}
models.py
class CompanyProfile(models.Model):
id = models.UUIDField(default=uuid.uuid4,
editable=False,
primary_key=True,
verbose_name='ID',)
......
verified = models.BooleanField(default=False)
def __str__(self):
return str(self.id)
Кроме того, обратите company
внимание, что присутствует в INSTALLED_APPS
Но ошибка, которую я получаю, связана с postman
{
"detail": "Method "POST" not allowed."
}
на терминале и попробовал PDB, чтобы проверить, вызывается ли функция
Method Not Allowed: /company/Reg/
[Date and Time] "POST /company/Reg/ HTTP/1.1" 405 41
дайте мне знать, если вы ищете более подробную информацию.
Заранее спасибо
С уважением
Комментарии:
1. добавьте настройки маршрутизатора DRF.
2. О, чувак, ты прав, это проблема, которую я только что прокомментировал, что маршрутизатор сейчас работает.
Ответ №1:
С помощью @ArakkalAbu я смог выяснить ошибку, вот как я обновил маршрутизатор
urlpatterns = [
path('check/', include(router.urls)),
#
## Register Company Process
# path('List/', ListCompanyView.as_view()),
path('Reg/', CompanyView.as_view()),
]
Теперь это работает нормально, спасибо
Ответ №2:
В вашем urls.py файл убедитесь, что ваш путь заканчивается на / например, path(‘post/’, Post.as_views()), а также в вашем http-запросе укажите это ‘/’ в конце. Вот как я решил проблему.