我有两个与ForeignKey链接的类。我的第一堂课是“类别”,具有“ ID”和“名称”属性。第二类是“文档”,具有“ ID”,“标题”和“用户”属性,最后一个与第一类中定义的类别链接。
我正在开发基于Vue的前端,因此我想知道如何从django-rest检索数据以表格形式显示。 例如,当用户添加新文档时,他必须在所有类别选项之间进行选择。请注意,类别对于所有文档都是通用的。
示例:类别= [{“ ID”:0,“名称” Sports“},{” ID“:1,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"}]
答案 0 :(得分:0)
不了解Vue,但您可以通过GET请求获取所有类别,然后使用这些类别作为选项填充下拉菜单,并获得提交时的下拉菜单值。
答案 1 :(得分:0)
在创建表单之前,您可以单独请求获取所有类别。
为此,您需要创建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,以在表单中显示它们
答案 2 :(得分:0)
1)在Django rest中为类别和文档编写一个序列化器。请通过串行器https://www.django-rest-framework.org/api-guide/serializers/
的链接2)用html编写表格,您可以在其中插入文档。在javascript(vue)中,您可以为该类别调用ajax request(获取请求),并在选择选项中显示该类别的内容。