Python 使用Django上传图像

Python 使用Django上传图像,python,django,Python,Django,我正在尝试使用Django作为后端上传照片 我使用的模型是: def inspection_picture_path(self, filename): return 'inspection_{0}/{1}'.format(self.inspection.id, filename) class InspectionPictures(models.Model): inspection = models.ForeignKey(Inspection, on_delete=models

我正在尝试使用Django作为后端上传照片

我使用的模型是:

def inspection_picture_path(self, filename):
    return 'inspection_{0}/{1}'.format(self.inspection.id, filename)


class InspectionPictures(models.Model):
    inspection = models.ForeignKey(Inspection, on_delete=models.CASCADE)
    picture = models.FileField(upload_to=inspection_picture_path, blank=True)

    def __str__(self):
        return "Inspection-{}".format(self.inspection.id)
settings.py
中,我有:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'master/static/master/img/inspection_pictures'),
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'master/static/master/img/inspection_pictures'),)
我试图保存图像的
视图中的函数如下所示:

def save_pictures(inspection, pictures):

    print(pictures)

    for picture in pictures['pictures']:
        n_picture = InspectionPictures()
        n_picture.inspection_id = inspection.id
        n_picture.picture = picture
        n_picture.save()
@token_required
@transaction.atomic
def add_inspection(request):
    if request.method == "POST":
        data = json.loads(request.POST.get('data'))
        pictures = request.FILES

        n_inspection = Inspection()
        n_inspection.user_id = data['user']['id']
        n_inspection.data = json.dumps(data)
        n_inspection.save()

        save_pictures(n_inspection, pictures)

        return HttpResponse("Its ok.", status=200)
    else:
        return HttpResponse("Something went wrong.", status=400)
打印(图片)
给出以下结果:

<MultiValueDict: {'pictures': [<InMemoryUploadedFile: samsung-s8.png (image/png)>, <InMemoryUploadedFile: Simulator Screen Shot 6 Jul 2017, 15.43.55.png (image/png)>]}>
检验
型号为:

class Inspection(models.Model):
    user = models.ForeignKey(to=User)
    data = models.TextField(null=False, blank=False, default=None)
    history = HistoricalRecords()

    class Meta:
        verbose_name_plural = "Inspections"

你能给我们看一下视图吗?你能同时发布模型检验代码吗?@be_good_do_good我已经更新了我的问题。@FazilZaid更新了。