[英]How to pass Serizalizer Fields to front-end Framework from RESTful API - DRF (Django)?
我想在前端使用 Svelte,在后端使用 DRF (Django)。
这就是我现在所拥有的:
#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__"
但是当我知道要在前端(Svelte)创建一个表单时,我必须手动这样做吗? 有没有一种方法可以请求包含所有必填字段的 json 并围绕它构建一个表单。
就像我首先请求api.com/students/form
一样,它返回一个 json:
{
"fields":[
"first_name",
"last_name"
]
}
然后我可以遍历"fields"
中的字段并相应地为表单创建<input>
标签。
对于您的端点api.com/students/form
,您可以创建如下视图:
from django.http import JsonResponse
@api_view(['GET'])
def get_form(request):
fields = ["first_name","last_name"]
return JsonResponse({"fields": fields})
您必须在fields
数组中包含所需的所有字段,或者如果您想要 model 的所有字段,您可以像这样获得它们model._meta.fields
或model._meta.get_fields()
您可以通过访问 url 的元数据来执行此操作,只需按照文档中的建议将OPTIONS
请求发送到端点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.