Question

here's my model:

class UploadedOrderImage(models.Model):
    order_image = models.OneToOneField(OrderImage)
    image_large = models.ImageField(upload_to=get_file_path_random, height_field='order_image.image_large_height', width_field='order_image.image_large_width')
    image_thumb = models.ImageField(upload_to=get_file_path_thumb, height_field='order_image.image_thumb_height', width_field='order_image.image_thumb_width')

Where order_image contains the fields image_large_width, image_large_height, image_thumb_heightand image_thumg_width. When I try to upload an image I get the error:

'UploadedOrderImage' has no attribute order_image.image_large_width

How do I tell django to refer to the a foreign-key related field?

Was it helpful?

Solution

I'm not sure about using Foreingkey attribute here.

But how about this?

class UploadedOrderImage(models.Model):
    order_image = models.OneToOneField(OrderImage)
    image_large = models.ImageField(upload_to=get_file_path_random)
    image_thumb = models.ImageField(upload_to=get_file_path_thumb)

    def save(self):             
       super(UploadedOrderImage, self).save()
       if self.image_large:
           image = Image.open(self.image_large)  
           size = (self.order_image.image_large_height,self.order_image.image_large_height)
           image = image.resize(size, Image.ANTIALIAS)
           image.save(self.image_large.path)
       if self.image_thumb:
           image = Image.open(self.image_thumb)  
           size = (self.order_image.image_thumb_height,self.order_image.image_thumb_height)
           image = image.resize(size, Image.ANTIALIAS)
           image.save(self.image_thumb.path)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top