Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Статьи » Розробка архітектури закритої корпоративної мережі з використанням фреймворку Django

Реферат Розробка архітектури закритої корпоративної мережі з використанням фреймворку Django





ть батьківський клас. Метод get_context_data буде спрацьовувати при GET запиті, і виводити дві форми (для створення новини і завантаження документа). Так само в кожній view ми будемо встановлювати перевірку: (self.request.user.is_authenticated ()) and (Profile.objects.get (pk=self.request.user.id) .party == True) and (not pk in self.kwargs)

Цей фрагмент визначать, чи зареєстрований поточний користувач, активований він адміністратором і чи перебуває на своїй сторінці або на сторінці іншого користувача.



Рисунок 10 - Головна сторінка користувача

Форми для створення новини BlogForm і для завантаження файлу FileForm опишемо в тій же директорії у файлі forms.py.

Першу форму вкажемо як стандартний атрибут батьківського класу form_class. І при спрацьовуванні POST запиту, ця форма буде оброблятися стандартними методами CreateView. Що б не прописувати багато зайвих полів у формі BlogForm, ми будемо використовувати клас ModelForm, який вкаже що форма буде успадковуватися від моделі Blog, за допомогою атрибуту model, і атрибуту exclude вкажемо які поля ми не хочемо змінювати.


class BlogForm (forms. ModelForm): Meta:=Blog=( number raquo ;, author raquo ;, date_of_publication raquo ;, image raquo ;, tags )=forms. FileField (max_length=200, label=«Обкладинка новини», required=False)


Т. к. нам потрібно що б користувач не бачив технічні поля (такі як author, date_of_publication, number, поле tags являє собою посилання на об'єкти (ManyToManyField), поле image - FileBrowserField не надає функціонал завантаження файлу на станиці сайту) то їх ми будемо обробляти і заповнювати вручну під час перевірки на валідність форми.

Що ж стосується другої форми, FileForm, то ми її будемо просто передавати в словнику context разом з іншими потрібними нам змінними, і обробка відбуватиметься за допомогою іншого класу UploadView, який буде успадковуватися від стандартного класу View, забезпечує метод post, який ми перевизначити.


class FileForm (forms. ModelForm): Meta:=FileProfile=( user raquo ;, date raquo ;, file )=forms. FileField (max_length=200, label="Файл", required=False)


Хочу зауважити, що при завантаженні картинки новини або документа для скачування, у формах використовувалося додатково поле FileField. Це пов'язано з тим, що функціонал поля FielBrowserField не дозволяє завантажувати файл на сторінці сайту, на відміну від стандартних Django-полів ImageField і FileField, яке описано у формі. Тому при виводі шаблон (файл * .html), ми приховуємо поле моделей Blog і FileProfile, а замість них вказуємо додаткове поле FileField. І вже при перевизначенні методу, ми з POST запиту отримуємо об'єкт файлу, зберігаємо його по потрібному нам шляхи та за допомогою методу FileObject, який імпортується з бібліотеки filebrowser, перетворимо його в об'єкт класу FileBrowserField.

Весь код даних сторінок представлено в додатку Б.

Додаток, що реалізує розділ БЛОГ, описується в папці blog нашого проекту. Головна сторінка цього розділу являє собою стрічку новин, з можливістю переглядати кожну новину повністю, формою пошуку за словами в тексті, заголовку і тегами новини, а також бічне меню, для фільтрації новин по архівах (малюнок 11).



Малюнок 11 - Головна сторінка новин

Функціонал головної сторінки новин здійснюється за допомогою класу ListView, якому передаємо в якості атрибута model модель Blog, що б вивести всі об'єкти даної моделі.


class BlogList (ListView):=Blog_object_name=«blog» get_context_data (self, ** kwargs):=super (BlogList, self) .get_context_data (** kwargs) self.request.user.is_authenticated () and Profile.objects.get (pk=self.request.user.id) .party == True: _obj=[] obj in Blog.objects.dates ( created raquo ;, month ): _ obj. append (obj)

[ archives ]=date_obj [ active_main_menu ]= main_blog :. template_name=«profile/error.html»

context [ ErrorText ]=u" Ви не авторизовані» context


Для перегляду кожної новини створюємо клас BlogDetail, а як батька класу будемо вказувати CreateView, що б була можливість створювати коментарі. Атрибуту model задаємо як об'єкт моделі Blog, вказуючи на основі якої моделі, ми будемо будувати форму, а в атрибуті exclude вкажемо які поля, ми не будемо відображати на шаблоні.


model=Comment=[ article raquo ;, author_name raquo ;, pub_date raquo ;, admin_comment ]

І тепер, що б при збереженні об'єкта наші виключені поля теж придбали потрібні нам значення, перевизначити метод form_valid:



Назад | сторінка 5 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Island blog
  • Реферат на тему: Є стрес? Будемо боротися!
  • Реферат на тему: Розробка термогенератора, який буде використовувати тепло двигуна для заряд ...
  • Реферат на тему: Прикладне додаток &Розробка проекту для створення нового класу Auto і елеме ...
  • Реферат на тему: До питання про теорію поля: функціонально-семантичне поле дейксиса