Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
15 / 12 / 4
Регистрация: 06.04.2020
Сообщений: 95

CBV для разных моделей

22.06.2020, 02:04. Показов 803. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
У меня в приложении имеются view для нескольких моделей - например, поиск может проводиться по разным моделям.
Можно ли сделать CBV для такого случая?

Если нет, то другой вопрос:
CBV возвращают в шаблон словарь view.kwargs, содержащий параметры URL, а как получить параметры URL для обычной - неCBV - вьюхи?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.06.2020, 02:04
Ответы с готовыми решениями:

Urls > views > DetailView :wall: фильтр slug для разных моделей
есть 2 модели Posts и Pages на их основе созданы объекты страницы и посты урлс path('<slug:slug>', views.PageView.as_view(),...

Два id двух разных моделей в url
models.py class Moderator(models.Model): gryp=models.ForeignKey(Communities,on_delete=models.CASCADE,verbose_name='Группа')...

CBV возврат значений из HTML
Добрый вечер товарищи! Помогите разобраться с CBV пытаюсь освоить замену функций классами, вот что получилось. def post_list(request): ...

7
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
22.06.2020, 12:22
Цитата Сообщение от Shandrik Посмотреть сообщение
Можно ли сделать CBV для такого случая?
можно
Цитата Сообщение от Shandrik Посмотреть сообщение
как получить параметры URL для обычной - неCBV - вьюхи?
Насколько я помню, можно так функцию объявлять

Python
1
def some_view(request, *args, **kwargs):
0
15 / 12 / 4
Регистрация: 06.04.2020
Сообщений: 95
22.06.2020, 12:59  [ТС]
Да, я почти так и делаю:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def user_activity_view(request, **kwargs):
    # View для совмещения Тем и Комментов
    context = {}
    if kwargs.get(PROFILE_ID_KEY):
        profile = UserProfile.objects.get(pk=kwargs.get(PROFILE_ID_KEY))
        user = profile.user
    else:
        user = request.user
    topic_list = Topic.objects.filter(author=user,is_deleted=False)
    comment_list = Comment.objects.filter(author=user,is_deleted=False)
    result_list = sorted(
        chain(topic_list, comment_list),
        key=lambda instance: instance.created)
 
    return render(request, 'userprofile/activity.html', {PROFILE_PAGE_KEY: 'Activity'})

Но в шаблоне view.kwargs пустые
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
22.06.2020, 13:01
Shandrik, а где ты их передаёшь в шаблон? не вижу.
0
15 / 12 / 4
Регистрация: 06.04.2020
Сообщений: 95
22.06.2020, 22:18  [ТС]
Дык в том-то и дело, что в CBV сама поставляет в шаблон view.kwargs. Самому передавать не надо. Я надеялся, что и def-view тоже так умеет.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
23.06.2020, 01:50
Shandrik, ты их не передаёшь в контекст
0
15 / 12 / 4
Регистрация: 06.04.2020
Сообщений: 95
23.06.2020, 01:56  [ТС]
Ну да, не передавал. Сейчас-то уже переделал - добавил в def-вьюшке в context url-параметры, но надеялся, что есть уже готовые, как в CBV.


Ещё раз - CBV-вьюхи сами передают в шаблон url-параметры в {{ view.kwargs }}
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
23.06.2020, 10:31
Цитата Сообщение от Shandrik Посмотреть сообщение
Ещё раз - CBV-вьюхи сами передают в шаблон url-параметры в {{ view.kwargs }}
Да, ты прав. Я не знал. Спасибо)

У FBV такой возможности нет, так как в CBV всё это делается в get_context_data.
https://github.com/django/djan... ase.py#L26
Поэтому в FBV нужно самому включать их в контекст.

Читай коммент к ответу
https://stackoverflow.com/ques... o-template
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2020, 10:31
Помогаю со студенческими работами здесь

Как работать с formset в CBV?
Есть форма ProductCreateForm, нужно добавить в неё форму SpeciallyPriceForm. Как я понял, это решается с помощью формсетов. Никак не...

Общий Id для разных моделей
Всем приветик! В процессе написания своего проекта столкнулась с такой проблемой: Есть база данных. Она общая для 3 видов товаров:...

Ищю программистов для написание виджетов для смарт ТВ разных моделей
Ищю программистов для написание виджетов для смарт ТВ разных моделей!!

Может есть у кого набор драйверов для HP LaserJet разных моделей?
Собственно нужен набор дров для всех моделей Laser Jet! Езжу по магазинам МЕТРО, где надо распечатывать док-ты с рабочего ноута, а у них...

ОЗУ разных моделей
В ноутбуке стоит планка ОЗУ фирмы Elpida 4 Гб; DDR3; 1333 МГц; модели ebj40ug8efu0. Могу ли я поставить ещё одну планку ОЗУ, но только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru