[Fixed]-Use model attribute as field parameter

1πŸ‘

βœ…

I think a more simple and understandable way to do this would be to avoid using the inner class function and doing something like this:

# Reference this function outside of your model class.
def xyz_directory_path(instance, filename):
    # file will be uploaded to MEDIA_ROOT/xyz_<id>/<filename>
    return 'xyz_{0}/{1}'.format(instance.id, filename)

Then, on your models, reference the function in your upload_to field like so:

class XYZ(models.Model):
    image = models.ImageField(upload_to=xyz_directory_path)

With your media config set up, this should work. There’s a really nice and simple explanation about file handling here.

πŸ‘€Nifled

Leave a comment