问题描述
我正在尝试创建一个django API,可以在其中针对唯一的用户名上传图像(无需任何身份验证),然后可以向该API提供用户名,以列出针对该用户名上传的所有IMAGES。我正在使用\media\
文件夹来存储图像。
imgapi / models.py
class File(models.Model):
file = models.FileField(blank=False,null=False)
name = models.CharField(max_length=20,default='user')
imgapi / serializers.py
class FileSerializer(serializers.ModelSerializer):
class Meta:
model = File
fields = ['file','name']
imgapi / views.py
class FileUploadView(APIView):
parser_class = (FileUploadParser,MultiPartParser,)
def post(self,request,*args,**kwargs):
file_serializer = FileSerializer(data=request.data)
if file_serializer.is_valid():
file_serializer.save()
return Response(file_serializer.data,status=status.HTTP_201_CREATED)
else:
return Response(file_serializer.errors,status=status.HTTP_400_BAD_REQUEST)
到目前为止,我可以上传图像和用户名。 它以这种格式给了我答复。
{
"file": "/media/photo_2020-06-06_02-55-54.png","name": "testUser"
}
imgapi / urls.py
urlpatterns = [
path('admin/',admin.site.urls),path('upload/',include('imgapi.urls')),path('api/',]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
如何使用例如给定的链接来检索用户名testUser
的URL列表
https:\\localhost:8000\api\list\username=testUser
感谢您拒绝我的问题
我找到了一个可行的解决方案,并且我将更新我的答案。 我得到了上传和过滤功能,都可以对views.py和urls.py
进行一些修改更新了 views.py
class GetImageViewSet(viewsets.ModelViewSet):
queryset = Image.objects.all()
serializer_class = ImageSerializer
filter_backends = [DjangoFilterBackend]
filterset_fields = ['uploaded_by']
更新了 urls.py
router = routers.DefaultRouter()
router.register(r'item',GetImageViewSet,basename='item')
urlpatterns = [
path('api/',include(router.urls)),] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)