Dynamic table names refer to global variables
table name is not a pointer, it is set and stored in the model class' `table_name` attribute. If you want to change it at run-time, then you need to call `ModelClass._meta.set_table_name()`.
```
GLOBAL_VAR_TABLE_NAME = "foo_table"
def make_table_name(model_class):
    model_name = model_class.__name__
    return GLOBAL_VAR_TABLE_NAME

class BaseModel(Model):
    class Meta:
        table_function = make_table_name

class User(BaseModel):
    # table_name will be "user_tbl".
 

```

update global variable
```
GLOBAL_VAR_TABLE_NAME = "bar_table"
```

but 
```
User().save()
```
still is foo_table, why?
