Antes da explicação quero reforçar o que eu disse anteriormente, sem uma base mínima de entendimento de como funciona as coisas vai ser difícil de tu tocar teu projeto adiante, esse tempo que tu esta perdendo com os erros é maior que o tempo que tu levaria para, pelo menos, fazer um apanhado geral da coisa.
Mas vamos lá.
Alguns pontos a serem observados no que tu fez.
1 - Quando tu coloca algo em um model, ele "fica disponível" para toda a tua aplicação, logo tu não precisa importar nada que esteja dentro de um model, quando for um módulo ai sim tu precisa importa. Model != Module.
2 - isso:
return random_logo()
Quer dizer que a tua função logotipo_random
irá retornar a função random_logo()
Sendo que o o que tu quer é retornar a variável random_logo
3 - Na tua função index (ou em qualquer outra que tu queira usar) tu deve chamar a função logotipo_random() e não o retorno dela, que no caso é a váriável random_logo. Tu pode fazer isso sem definir uma função, nesse caso poderia chamar a variável apenas, mas eu acho que isso não fica legal.
Enfim, segue como as coisas deveriam funcionar:
No arquivo /models/logotipo_random.py
def logotipo_random():
import os, random
random_logo = random.choice(os.listdir("c:\\web2py\\applications\\One_Base\\static\\images\\logos"))
return random_logo
No arquivo /controller/default.py
def index():
random_logo = logotipo_random()
if request.post_vars:
hostname = str(request.post_vars.hostname)
return locals()
<img src="/One_Base/static/images/oi_logos/{{=random_logo}}"/>
Como logotipo_random() é uma função global, e tu pode executar python na view, tu pode chamar ela diretamente se quiser:
<img src="/One_Base/static/images/oi_logos/{{=
logotipo_random()}}"/>
Isso deve funcionar.