programing

django-rest에서 데이터를 검색하여 형식으로 표시

newsource 2022. 8. 25. 00:01

django-rest에서 데이터를 검색하여 형식으로 표시

ForeignKey에 링크된 클래스가 2개 있습니다.첫 번째 클래스는 "Categories"로, "ID"와 "Name" 속성을 가집니다.두 번째 클래스는 "Documents"로, "ID", "Title" 및 "User" 속성을 가지며 마지막 클래스는 첫 번째 클래스에서 정의된 카테고리와 연결됩니다.

저는 Vue를 기반으로 프런트 엔드를 개발하고 있기 때문에 django-rest에서 데이터를 취득하여 폼으로 표시하는 방법을 알고 싶습니다.예를 들어, 사용자가 새 문서를 추가할 때 모든 카테고리 옵션 중에서 선택해야 합니다.카테고리는 모든 문서에 공통입니다.

예: 범주 = [{"ID: 0, "이름 "스포츠", {"ID": 1, "이름": "음악"}]

새 문서를 추가할 양식:

제목 : XXXX

카테고리:
스포츠,
음악

models.py


from django.db import models

class Category(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=200)

class Documents(models.Model):
    id = models.AutoField(primary_key=True)
    title= models.CharField(max_length=200)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

아래와 같은 답변을 받으면 문제가 해결될 것 같습니다.

["docs": 
     [{"ID": 1, "Title": "Doc1", "Category": Sports}, 
     {"ID": 2, "Title": "Doc2", "Category": Music}], 
 "categories": 
     [{"ID": 0, "Name: "Sports"}, 
     {"ID": 1, "Name": "Music"}]

Vue에 대한 정보는 없지만 GET 요청을 사용하여 모든 카테고리를 가져온 다음 드롭다운 메뉴를 옵션으로 채우고 제출 시 드롭다운 값을 얻을 수 있습니다.

양식을 생성하기 전에 구분하여 모든 카테고리를 가져올 수 있습니다.

이를 수행하려면 CategorySerializer 및 ListCategoryProvider를 작성해야 합니다.

class CategorySerializer(serializers.ModelSerializer):

    class Meta:
        model = Category
        fields = {'name'}

class ListCategoryProvider(generics.ListAPIView):
    serializer_class = CategorySerializer

    def get_queryset(self):
        queryset = Category.objects.all()
        return queryset

그런 다음 모든 카테고리 이름을 포함하는 JSON을 해석하여 폼에 표시해야 합니다.

1) 카테고리 및 문서용으로 장고 받침대에 시리얼라이저를 작성합니다.serializer https://www.django-rest-framework.org/api-guide/serializers/ 링크를 참조하십시오.

2) 문서를 삽입할 수 있는 폼을 html로 작성합니다.javascript(vue)에서 카테고리에 대한 Ajax request(get request)를 호출하여 선택 옵션에 카테고리를 표시할 수 있습니다.

언급URL : https://stackoverflow.com/questions/56580115/retrieve-data-from-django-rest-to-show-in-a-form