【发布时间】:2022-11-26 19:44:38
【问题描述】:
在创建医生模型期间,我无法上传多个图像文件。 我认为要实现多次上传,您需要在 DoctorSerializer 中设置用于上传的附加字段。
我想使用 django rest 框架为每个学生上传多张图片。目前,我只能为每个学生上传一张图片,但我希望能够为每个医生上传多张图片到他们名字目录中的上传文件夹中。我正在构建面部考勤识别系统,我需要每个学生的多张图像。这是我的 models.py 文件。
模型.py
class Doctor(models.Model):
def get_upload_path(instance, filename):
return 'documents/{0}/{1}'.format(instance.name, filename)
mobile_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Up to 15 digits allowed.")
name = models.CharField(max_length=255, blank=False, null=False)
mobile = models.CharField(validators=[mobile_regex], max_length=15)
email = models.EmailField(max_length=255, blank=False, null=False)
picture = models.ImageField(upload_to="images/", blank=True, null=True)
document = models.FileField(upload_to=get_upload_path, null=True, blank=True)
这是我的 serializers.py
class DoctorSerializer(serializers.ModelSerializer):
class Meta:
model = Doctor
fields = ['id','name','email','mobile' ,'document',]
def create(self, validated_data):
return Doctor.objects.create(**validated_data)
和我的 views.py 文件...
class CreateDoctorAPIView(APIView):
parser_classes = (MultiPartParser, )
def post(self,request,*args):
try:
files = request.FILES['document']
print(files)
serializer = DoctorSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response({
'message': 'Doctor created successfully',
})
else:
return Response({
'message':'something wrong'
})
except Exception as e:
return Response({
'mesaage':str(e)
})
【问题讨论】:
标签: django django-models django-rest-framework django-file-upload