z哎Django restframwork中就有一个类能够获取列表的详情内容,只有两行代码就能够搞定,在浏览器测试是ok的。可是这样的接口给前端,前端点击详情而后会将models.表名.objects.all()的全部内容从新放在了这个数组中。以致于前端点击详情拿到的并非单个id对应的内容。因此稍微重写一下就好。看一下代码。原本就是一个数据表,列表页数据少,详情回去的数据多一点而已。前端
class Upload_filep(models.Model): """上传项目模型""" name = models.CharField(verbose_name='项目名', max_length=32) title = models.TextField(verbose_name='项目描述') upload_files = models.FileField(upload_to="upload/") img = models.ImageField(upload_to="upload/") address = models.CharField(max_length=64, verbose_name='地址', null=True, blank=True) add_time = models.DateTimeField(default=datetime.now, verbose_name='建立时间')
router = DefaultRouter() router.register(r'show_workPubs_detail',Mode_DetailViewSet,base_name="mode_detail") urlpatterns = [ path('admin/', admin.site.urls), url(r'^',include(router.urls)), ]+ static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
seiializers.pypython
class Show_workPublishedModelSerialiazer(serializers.ModelSerializer): class Meta: model = Upload_filep fields = ("id","name","title","img","upload_files","address") search_fields = ('name','title')
view.py(原Django restframwork中只写queryset和serializer_class就能够获取,可是前端拿到的并非单个id对应的数据,因此重写get_queryset(self)就好)数组
class Mode_DetailViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): # 经过三维城市的id,获取三维城市的详情 queryset = Upload_filep.objects.all() serializer_class = Show_workPublishedModelSerialiazer def get_queryset(self): id = self.request.GET.get('id') if id is not None: return self.queryset.filter(id=id) return self.queryset
到此,列表详情的获取就能够完成浏览器