Для начала, сама процедура отображения содержимого файла.
views.py:
def log(request, userid):
#по идентификатору выбираем строку из БД с данными о текущем пользователе
user = LogUser.objects.get(id=userid)
username = user.name
#указываем путь к фалу лога пользователя
url = settings.LOG_FILE_PATH.format(user=username) #MEDIA_ROOT+log.log'
#считываем информацию из файла
f = open(url, 'r')
log = f.readlines()
#создаем переменную лога для передачи на html страницу
context = {'log_lines': log}
return render_to_response('reg_inf/user_log.html', context)
from django.contrib import admin
#импортируем Стандартную джанговскую модель User
#как с ней работать написано здесь
from django.contrib.auth.models import User
#модель, для отображения имени юзера и поля лога
from reg_inf.models import LogUser
from django.contrib.auth.admin import UserAdmin
#импортируем процедуру из views.py
from reg_inf.views import log
admin.autodiscover()
#процедура, для отображения ссылки в админке на файл лога
def user_view_log_link(user):
#id юзека, для определения имени в БД
p = user.id
#возвращаем ссылку, при нажатии на которую, вызывается процедура log
#ей передается id юзера, на против которого была нажата ссылка
return '<a href="%s">:Журнал</a>' % reverse(log, args=[p])
#создаем дополнительное поле для ссылки
user_view_log_link.allow_tags = True
#создаем класс, для отображения в админке
class MyUser(admin.ModelAdmin):
list_display = ('name', user_view_log_link,)
#регистрируем модель LogUser как потомка MyUser
admin.site.register(LogUser, MyUser)
urlpatterns = patterns('reg_inf.views',
(r'^log/(?P<userid>\d+)$', 'log'),
Комментариев нет:
Отправить комментарий