@jenyasafronov

Как передать в DetailView данные нескольких моделей?

views.py

class DetailView(DetailView):
    model = Page
    context_object_name = 'Page'
    template_name = 'page/pagescr.html'


urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from page import views


urlpatterns = [
    path('admin/', admin.site.urls),
    path('grappelli/', include('grappelli.urls')), # grappelli URLS
    path('', views.index, name='index'), 
    path('<slug:slug>/', views.DetailView.as_view(), name='pagesc'), 
]

models.py
class Page(models.Model):
    page_title = models.CharField('Title страницы', max_length = 200)
    slug = models.SlugField('URL страницы', primary_key=True, max_length=250, unique=True)
    page_text = models.TextField('Содержимое страницы')
    
    def __str__(self):
        return self.page_title
        
    def get_absolute_url(self):
        return reverse('detail', args=[str(self.slug)])  

class Content(models.Model):
    info = models.CharField(max_length = 200)
    ban_scr_sc = models.CharField(max_length = 200)


В чем суть, по средствам DetailView создаю динамические страницы с модели Page. Но необходимо по мимо модели Page передать данные в DetailView с других моделей (например с модели Content). Как правильно реализовать?
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@bacon
Либо у Page должна быть связь с Content, либо получить нужный Content и передать в шаблон через get_context_data.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы