pallets-eco / flask-admin

Simple and extensible administrative interface framework for Flask
https://flask-admin.readthedocs.io
BSD 3-Clause "New" or "Revised" License
5.78k stars 1.57k forks source link

ImageUploadField with dynamic base_path (SQLAlchemy) #410

Closed Skivmag closed 10 years ago

Skivmag commented 10 years ago

Hi!

form_extra_fields = {
        'path': form.ImageUploadField
        (
            'Image',
            base_path=IMG_ROOT
        )
    }

Can I someway change base_path when form filled? For example, I have model

class Image(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    path = db.Column(db.Unicode(128), unique=True)
    category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
    category = db.relationship('Category', backref=db.backref('category', lazy='dynamic'))

And I want pictures to be saved to "IMG_ROOT/model.category_id" How can I impliment this?

mrjoes commented 10 years ago

Yes. Just change base_path (https://github.com/mrjoes/flask-admin/blob/master/flask_admin/form/upload.py#L158) in create_form/update_form: https://github.com/mrjoes/flask-admin/blob/master/flask_admin/model/base.py#L755