Method not allowed in fresh django-ninja-extra project
I cant make a post request in my project, now i created a fresh project, because i thought it was a configuration problem. But the Problem persists. The problem is that when i try to make a post request it always gives me a 405 status back.
settings.py:
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'backend.apps.department',
'ninja_extra'
]
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',
]
api.py:
from ninja_extra import NinjaExtraAPI
api = NinjaExtraAPI()
api.auto_discover_controllers()
department/api.py:
from ninja_extra import api_controller, route
from django.shortcuts import get_object_or_404
from ninja import Schema
from datetime import datetime
from .models import department
from typing import List
class DepartmentIn(Schema):
name: str
last_modified: datetime
user_id: int
class DepartmentOut(Schema):
id: int
name: str
last_modified: datetime
@api_controller('department/')
class DepartmentController:
@route.get("all/", response=List[DepartmentOut])
def get_departments(self):
department_list = department.objects.all()
return department_list
@route.get("{department_id}/", response=DepartmentOut)
def get_department(self, department_id: int):
record = get_object_or_404(department, id=department_id)
return record
@route.post("create/")
def create_department(self, payload: DepartmentIn):
record = department.objects.create(**payload.dict())
return {"id": record.id}
models.py:
from django.db import models
from django.conf import settings
class department(models.Model):
name = models.CharField(max_length=50)
last_modified = models.DateTimeField(auto_now=True, auto_now_add=False)
user_id = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
The Problem i get:
Response body
Method not allowed
Response headers
allow: GET content-length: 18 content-type: text/html; charset=utf-8 cross-origin-opener-policy: same-origin date: Wed,11 Dec 2024 11:22:20 GMT referrer-policy: same-origin server: WSGIServer/0.2 CPython/3.12.5 x-content-type-options: nosniff x-frame-options: DENY