Получить данные из django-rest, чтобы показать в форме - PullRequest
2 голосов
/ 13 июня 2019

У меня есть два класса, связанных с ForeignKey.Мой первый класс - «Категории» со свойствами «ID» и «Имя».Второй класс - это «Документы» со свойствами «ID», «Заголовок» и «Пользователь», последний класс связан с категорией, определенной в первом классе.

Я разрабатываю интерфейсна основе 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"}]

Ответы [ 3 ]

0 голосов
/ 13 июня 2019

Вы можете сделать отдельный запрос, чтобы получить все категории, прежде чем создавать форму.

Для этого вам нужно создать 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, содержащий все имена категорий, чтобы отобразить их в вашей форме

0 голосов
/ 13 июня 2019

1) написать сериализатор в оставшейся части Django для категории и документа. Пожалуйста, пройдите по ссылке для сериализатора https://www.django -rest-framework.org / api-guide / serializers /

2) написать форму в HTML, где вы можете вставить документ. В javascript (vue) вы можете вызвать ajax-запрос (получить запрос) для категории и отобразить категории в опциях выбора.

0 голосов
/ 13 июня 2019

Нет никакого представления о Vue, но вы можете просто получить все свои категории с помощью запроса GET, а затем заполнить раскрывающееся меню с этими категориями в качестве параметров и получить значение раскрывающегося списка при отправке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...