【发布时间】:2021-11-15 01:22:53
【问题描述】:
Models.py
from django.db import models
# Create your models here.
class reviewData(models.Model):
building_name = models.CharField(max_length=50)
review_content = models.TextField()
star_num = models.FloatField()
class buildingData(models.Model):
building_name = models.CharField(max_length=50)
building_loc = models.CharField(max_length=50)
building_call = models.CharField(max_length=20)
views.py
# Create your views here.
from django.shortcuts import render
from rest_framework.response import Response
from .models import reviewData
from .models import buildingData
from rest_framework.views import APIView
from .serializers import ReviewSerializer
class BuildingInfoAPI(APIView):
def get(request):
queryset = buildingData.objects.all()
serializer = ReviewSerializer(queryset, many=True)
return Response(serializer.data)
class ReviewListAPI(APIView):
def get(request):
queryset = reviewData.objects.all()
serializer = ReviewSerializer(queryset, many=True)
return Response(serializer.data)
urls.py
from django.contrib import admin
from django.urls import path
from crawling_data.views import ReviewListAPI
from crawling_data.views import BuildingInfoAPI
urlpatterns = [
path('admin/', admin.site.urls),
path('api/buildingdata/', BuildingInfoAPI.as_view()),
#path('api/buildingdata/(I want to put building name here)', ReviewListAPI.as_view())
]
我正在制作评论 api。
我想使用建筑物名称作为 url 路径来为特定建筑物带来评论
比如有a,b,c评论
a、b 评论适用于 aaabuilding
c 评论适用于 xxxbuilding
api/buildingdata/aaabuilding(仅显示 aaabuilding 评论)
{
building_name = aaabuilding
review_content = a
star_num = 5
building_name = aaabuilding
review_content = b
star_num = 3
}
api/buildingdata/xxxbuilding(仅显示 xxxbuilding 评论)
{
building_name = xxxbuilding
review_content = c
star_num = 4
}
我搜索了一些动态 URL 帖子,但它们不是我想要的。
另外,我之前发布过一个问题,但没有我想要的答案。
有什么方法可以将建筑物名称从 db 带入 URL?
【问题讨论】:
-
尝试在 url.py 中导入建筑模型,然后尝试将该模型用作路径函数中的 URL 模式。
标签: python django url django-rest-framework url-rewriting