【发布时间】:2021-02-14 08:49:00
【问题描述】:
我正在尝试创建一个 django react 应用程序。我正在尝试从 django 获取数据以做出反应。我被困在需要循环多个数组的地方。
这是我的 serializer.py
class ServiceSerializer(serializers.ModelSerializer):
class Meta:
model = Service
fields = ('id', 'title', 'description')
class TechnologiesAndFrameworkSerializer(serializers.ModelSerializer):
class Meta:
model = TechnologiesAndFramework
fields = ('id', 'title', 'description', 'service')
这是我的models.py
class Service(models.Model):
title = models.CharField(blank=False, null=False, max_length=256)
description = models.CharField(blank=False, null=False, max_length=256)
def __str__(self):
return self.title
class TechnologiesAndFramework(models.Model):
title = models.CharField(blank=False, null=False, max_length=256)
description = models.CharField(blank=False, null=False, max_length=256)
service = models.ForeignKey(Service, on_delete=models.CASCADE, null=True)
def __str__(self):
return self.title
这是我的观点.py
class ServiceViewSet(viewsets.ModelViewSet):
serializer_class = ServiceSerializer
queryset = Service.objects.all()
permission_classes = [permissions.AllowAny]
class TechnologiesAndFrameworkViewSet(viewsets.ModelViewSet):
serializer_class = TechnologiesAndFrameworkSerializer
queryset = TechnologiesAndFramework.objects.all()
permission_classes = [permissions.AllowAny]
所以在后端,服务模型有
- 前端
- 后端
- 部署
我的 TechnologiesAndFramework 有
- 姜戈
- 反应 JS
- 码头工人
- 鹡鸰
- 引导程序
- Postgres
我想基于服务循环遍历 TechnologiesAndFramework。
所以输出应该是这样的。
-
前端
- 反应 JS
- 鹡鸰
- 引导程序
-
后台
- 姜戈
- Postgres
-
部署
- 码头工人
我怎样才能实现这种格式?
目前这是我的反应代码的样子
const [service, setService] = useState([]);
const [framework, setFramework] = useState([]);
useEffect(() => {
fetch("http://localhost:8000/api/work/service")
.then((res) => res.json())
.then(setService);
fetch("http://localhost:8000/api/work/f&t")
.then((res) => res.json())
.then(setFramework);
}, []);
<div className="progress-bars">
{framework &&
service &&
framework.map((item, index) => {
console.log(framework)
return (
<>
<h1>{service[item]}</h1>
<h1>{item.title}</h1>
</>
);
})}
</div>
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
尝试将您的 .then 方法更改为 --> .then(response => setService(response))
-
Radwan Abu-Odeh 建议的解决方案对我有用。不过感谢@nir shabi 的回复。
标签: reactjs django django-models django-rest-framework django-views