У меня есть следующие модели:
class Category(models.Model):
cat_image = models.ImageField(upload_to='Category',null=True, blank=True)
cat_title = models.CharField(max_length=250)
cat_overview = models.CharField(max_length=500)
cat_slug = models.SlugField(unique=True)
class SubCategory(models.Model):
sub_cat_image = models.ImageField(upload_to='SubCategory',null=True, blank=True)
sub_cat_title = models.CharField(max_length=255)
sub_cat_overview = models.CharField(max_length=500)
sub_cat_parent = models.ForeignKey(Category, on_delete=models.CASCADE)
sub_cat_slug = models.SlugField(unique=True)
class SubSubCategory(models.Model):
subsub_cat_title = models.CharField(max_length=150)
subsub_cat_parent = models.ForeignKey(SubCategory, on_delete = models.CASCADE)
subsub_cat_slug = models.SlugField(unique=True)
Я уже заполнил эти модели некоторыми данными, и у меня нет проблем с отображением модели Category
в шаблонах, но возникает проблема, когда я хочу показать SubCategory
и SubSubCategory
одновременно в одном шаблоне.
это категории, но когда я нажимаю, например, "Python".Эти страницы показывают:
проблема, как вы можете видеть в приведенном выше коде, состоит в том, что только python syntax
, Python Variables
и Python loops
принадлежатдо Python Basic
не Python Files
и Python Logs
.Как избежать этого и показывать только связанные SubSubCategory
экземпляры SubCategory
модели?
Коды, связанные с изображением выше:
views.py
def home(request):
return render(request, 'tutorials/home.html', {'categories':Category.objects.all()})
def sub_cat(request, category):
sub_cats = SubCategory.objects.filter(sub_cat_parent__cat_slug=category)
subsub_cats = SubSubCategory.objects.filter(subsub_cat_parent__sub_cat_parent__cat_slug = category)
context = {
'sub_cats': sub_cats,
'subsub_cats': subsub_cats,
}
return render(request, 'tutorials/sub_cat.html', context)
и sub_cat.html
<div class="row">
<div class="col-md-3">
<div class="sidenav">
{% for sub_cat in sub_cats %}
<button class="dropdown-btn"> {{ sub_cat.sub_cat_title }}
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-container">
{% for subsub_cat in subsub_cats %}
<a href="#">{{ subsub_cat.subsub_cat_title }}</a>
{% endfor %}
</div>
{% endfor %}
</div>
</div>
<div class="col-md-9">
<h2>Learn Python</h2>
<p>
Authoritatively ....
</p>
</div>
Пожалуйста, помогите мне с этим спасибо.
edit: Если вы знаете лучший способ, чем этот метод, поэтому, пожалуйста, помогите мне.