Django视图无法保存模型实例,但可以正确运行数据处理功能吗?

时间:2019-08-06 15:52:14

标签: django django-models django-rest-framework django-views

我有一个功能可以处理用户上传的图像。我认为,输入该功能后,该功能将应用于上载的图像。

models.py

class UploadedImages(models.Model):
    patient =           models.ForeignKey(Patient,on_delete=models.CASCADE,related_name='images')
    pre_analysed =      models.FileField(upload_to = user_directory_path ,
                                            verbose_name = 'Image')

class Processed(models.Model):
    uploaded_image = models.ForeignKey(UploadedImages,on_delete=models.CASCADE,related_name='processed')
    analysedimage = models.ImageField(upload_to=analyses_directory_path,
                                      verbose_name='analysed Image', blank=True)

views.py

def AnalysedDetails(request,pk=None):
    Uimage = get_object_or_404(models.UploadedImages,pk=pk)
    analysed = models.Processed(uploaded_image=Uimage,analysedimage=main(Uimage.pre_analysed.path))
    analysed.save()
    return HttpResponse("OK")

但是当我检查管理页面以查看模型时,它仅保存上传的图像,而不保存已处理的图像,并且当我检查目录时,我发现仅保存了上传的图像字段。

我尝试过

analysed=models.Processed(uploaded_image=Uimage.pre_analysed,analysedimage=main(Uimage.pre_analysed.path))

但返回

  

无法分配“”:   “ Processed.uploaded_image”必须是“ UploadedImages”实例

1 个答案:

答案 0 :(得分:1)

使用.create()创建简单的方法来创建新对象,
看看如何create object
所以应该是
analysed = models.Processed.objects.create(...)
如果使用这种方式,则不需要save()方法

要以编程方式保存ImageField,您可以看到thisthis