I want to use Svelte in the front-end and DRF (Django) in the back-end.
This is what I have right now:
#models.py
class Student(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
# serializers.py
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = "__all__"
But when I know want to create a form in the front-end (Svelte) I have to manually do that? Is there a way of requesting a json with all the required fields and the to build a form around it.
Like first I request api.com/students/form wich returns a json:
{
"fields":[
"first_name",
"last_name"
]
}
And then I could just iterate over the fields in "fields" and create <input> tags for the form acordingly.
CodePudding user response:
For your endpoint api.com/students/form you can create a view like this:
from django.http import JsonResponse
@api_view(['GET'])
def get_form(request):
fields = ["first_name","last_name"]
return JsonResponse({"fields": fields})
You have to include all the fields you want on your fields array, or if you want all the fields of the model you can get them like this model._meta.fields or model._meta.get_fields()
CodePudding user response:
You can do this by accessing metadata of the url, simply send OPTIONS request to the endpoint as suggested in documentation
