vitalik/django-ninja#444 (comment)
Para salvar FK automaticamente no django-ninja renomeie o field para field_id no back e no front.
vitalik/django-ninja#444 (comment)
Para salvar FK automaticamente no django-ninja renomeie o field para field_id no back e no front.
| from typing import List | |
| from ninja import ModelSchema, Router | |
| from ninja.security import django_auth | |
| from .models import Product | |
| router = Router() | |
| class ProductSchemaIn(ModelSchema): | |
| category_id: int # FK é salvo automaticamente. | |
| class Config: | |
| model = Product | |
| model_fields = ('title', 'price') | |
| @router.post('product/', auth=django_auth, response=ProductSchema) | |
| def create_product(request, payload: ProductSchemaIn): | |
| return Product.objects.create(**payload.dict()) |
| const data = document.currentScript.dataset | |
| const csrftoken = data.csrf | |
| const baseUrl = '/api/v1/product/' | |
| const headers = { "Content-Type": "application/json", "X-CSRFToken": csrftoken } | |
| saveData() { | |
| // Remove category e associa o restante a bodyData | |
| // Transforma category em category_id para salvar automaticamente no Django-ninja. | |
| const { category: _, ...bodyData } = { | |
| ...this.editItem, | |
| category_id: this.editItem.category | |
| } | |
| fetch(`${baseUrl}product/`, { | |
| method: "POST", | |
| headers: headers, | |
| body: JSON.stringify(bodyData), | |
| }) | |
| } |