簡體   English   中英

如何將序列化器字段從 RESTful API - DRF (Django) 傳遞到前端框架?

[英]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.fieldsmodel._meta.get_fields()

您可以通過訪問 url 的元數據來執行此操作,只需按照文檔中的建議將OPTIONS請求發送到端點

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM