Django rest framework загружает изображение в связанную модель с помощью generic.createAPIView
Я планирую проведение медицинского лагеря в определенном месте. После достижения места назначения я хочу загрузить фотографию этого места назначения на карту.
Я создал две модели для этого
Один - SiteMap
class SiteMap(models.Model):
MpId = models.IntegerField(verbose_name='MPID')
VisitingDate = models.DateField(default=timezone.now,verbose_name='Date')
Vehical = models.ForeignKey(VehicalMaster,on_delete=models.CASCADE,verbose_name='Vehical')
Doctor = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='Doctor')
District = models.ForeignKey(District,on_delete=models.CASCADE,verbose_name='District')
Block = models.ForeignKey(Block,on_delete=models.CASCADE,verbose_name='Block')
Panchayat = models.CharField(max_length=120,verbose_name="Panchayat")
Village = models.CharField(max_length=120,verbose_name='Village')
updated = models.DateTimeField(auto_now=True)
А второй - SiteMapImage
class SiteMapImage(models.Model):
MPID = models.ForeignKey(SiteMap,on_delete=models.CASCADE,verbose_name='MPID')
SiteImage = models.ImageField(default='default.png',upload_to='sitemap/%Y/%m/%d')
Location = models.CharField(max_length=200,verbose_name='Location',null=True,blank=True)
Latitude = models.CharField(max_length=120,verbose_name='Latitude',null=True,blank=True)
Longitue = models.CharField(max_length=120,verbose_name='Longitude',null=True,blank=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return f"{self.MPID}"
def save(self):
super().save()
siteimg = Image.open(self.SiteImage.path)
if siteimg.height>300 or siteimg.width>300:
output_size = (300,300)
siteimg.thumbnail(output_size)
siteimg.save(self.SiteImage.path)
Я создал класс сериализатора для этого. Вот код.
class SiteMapImageSerializer(serializers.ModelSerializer):
class Meta:
model = SiteMapImage
fields = ['MPID','Location','Latitude','Longitue','SiteImage']
и вот мой view.py
class SiteMapImageCreateView(generics.CreateAPIView):
lookup_field = 'SiteMap.pk'
serializer_class = SiteMapImageSerializer
def get_queryset(self):
return SiteMapImage.objects.all()
Я не знаю, что я сделал не так. но в браузере тоже не работает.
Я тоже загружаю изображение ошибки.