Как я могу достичь stackedinlines модели администрирования Django в html-тегах?
Я использую stackedinline для создания подтемы для каждого типа рака, в админке все работает отлично, я могу добавить подтему для каждого типа рака прямо со страницы создания/редактирования типа рака, но я не могу понять, как отобразить подтему, связанную с "родительским" типом в html шаблоне.
P.S. Я новичок в программировании
my models.py
from django.db import models
from ckeditor.fields import RichTextField
class CancerType(models.Model):
name = models.CharField(max_length=200, blank=False)
image = models.ImageField(upload_to="static/assets/images/types")
description = RichTextField(default="", blank=True, null=True)
def __str__(self):
return self.name
class Meta:
verbose_name = "Տեսակ"
verbose_name_plural = "Տեսակներ"
class SubTopic(models.Model):
type = models.ForeignKey(CancerType, on_delete=models.CASCADE)
title = models.CharField(max_length=200, blank=False)
topic = RichTextField(blank=False, null=True)
def __str__(self):
return self.title
class Meta:
verbose_name = "Ենթաբաժին"
verbose_name_plural = "Ենթաբաժիններ"
admin.py
rom django.contrib import admin
from .models import CancerType, SubTopic
admin.site.register(SubTopic)
class SubTopicInline(admin.StackedInline):
model = SubTopic
extra = 0
class CancerTypeAdmin(admin.ModelAdmin):
inlines = [SubTopicInline]
admin.site.register(CancerType, CancerTypeAdmin)
type.html
{% extends 'base.html' %}
{% load static %}
{% block content %}
<img src="{% url 'home' %}{{ cancertype.image }}">
<h4>{{ cancertype.name }}</h4>
<br>
{{ cancertype.description|safe }}
<br>
{% for subtopic in object_list %}}
{% if subtopic.type %}}
{{ subtopic.title }}
<hr>
{{ subtopic.body }}
{% endif %}
{% endfor %}
{% endblock %}
Как упоминал Джонас, у меня была проблема с моими данными, поступающими в html. Несколько минут исследований дали мне ответ. цикл for через subtopics.object_set.all возвращает подтемы текущего типа рака. Таким образом, hmtl должен выглядеть так:
{% for subtopic in object.subtopic_set.all %}
<div class="accordion-item">
<h2 class="nav-link link text-black display-4" id="{{subtopic.id}}">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{{subtopic.id}}" aria-expanded="true" aria-controls="collapse{{subtopic.id}}">
{{ subtopic.title }}
</button>
</h2>
<div id="collapse{{subtopic.id}}" class="accordion-collapse collapse " aria-labelledby="heading{{subtopic.id}}" data-bs-parent="#accordionExample">
<div class="accordion-body">
<p class="nav-link link text-black display-4"> {{ subtopic.topic|safe }}</p>
</div>
</div>
</div>
{% endfor %}