Django继承避免创建许多html文件

Django继承避免创建许多html文件,django,django-models,django-views,django-templates,django-inheritance,Django,Django Models,Django Views,Django Templates,Django Inheritance,我是Django的新手。我有任务,我有星座网站,有12个星座水瓶座,白羊座等。。。。在Aquarius.html中有一些子类别,如宝瓶座爱情、宝瓶座金融。。。。模板类似,当访问者点击“爱”按钮时,我想显示宝瓶座的爱的内容(我不想复制粘贴Aquarius.html并创建另一个爱文件,然后显示)如何做到这一点? 例如,当用户打开宝瓶座我想显示 {% for aqua in aquas %} {% if forloop.last %}

我是Django的新手。我有任务,我有星座网站,有12个星座水瓶座,白羊座等。。。。在
Aquarius.html
中有一些子类别,如宝瓶座爱情、宝瓶座金融。。。。模板类似,当访问者点击“爱”按钮时,我想显示宝瓶座的爱的内容(我不想复制粘贴
Aquarius.html
并创建另一个爱文件,然后显示)如何做到这一点? 例如,当用户打开宝瓶座我想显示

 {% for aqua in aquas %}
                       {% if forloop.last %}
                        Aqua Content text{{aqua.body_text}}
                       {% endif %}
                       {% endfor %}
当打开宝瓶座爱情(点击爱情按钮)时,显示爱情内容

 {% for Love in Loves %}
                           {% if forloop.last %}
                           love Content text  {{aqua.love_body_text}}
                           {% endif %}
                           {% endfor %}

你怎么能做到这一点?如果不是这样的话?

我认为你的模型是这样的:

    class ZodiacSign(models.Model):
        name = models.CharField(...)
        body_text = models.TextField(...)
        .
        .
        .
        love_content = models.TextField(...) or models.ForeignKey(...) or models.ManytoManyField(...)

    from zodiac.views import showZodiacSign
    urlpatterns = [
        .
        .
        path("zodiacSign/<int:zodiacSignPk>", showZodiacSign, name = "showZodiacSign"),
        .
        .
    ]

您的Url可能如下所示:

    class ZodiacSign(models.Model):
        name = models.CharField(...)
        body_text = models.TextField(...)
        .
        .
        .
        love_content = models.TextField(...) or models.ForeignKey(...) or models.ManytoManyField(...)

    from zodiac.views import showZodiacSign
    urlpatterns = [
        .
        .
        path("zodiacSign/<int:zodiacSignPk>", showZodiacSign, name = "showZodiacSign"),
        .
        .
    ]

以及您的html文件ZodiacSign.html。如果我理解正确,您只需要一个名为ZodiacSign.html的html文件:

   {{ zodiacSign.name }} Content Text : {{ zodiacSign.body_text }}

   <button onclick="showContent('loveContent');">Show Love Content</button>
    <style>
        .zodiacContent{
        /*this->*/    display: none;
        /*or this->    visibility: hidden;*/
        }
    </style>
    <div id = "loveContent" class="zodiacContent">
        {{ zodiacSign.love_content }} {# if you used models.TextField() for love content #}
    </div>
    <script>
        function showContent(contentBlockId) {
            let content = document.getElementById(contentBlockId);
            content.classList.toggle("zodiacContent");
        }
    </script>
{{zodiacSign.name}内容文本:{{{zodiacSign.body_Text}
展示爱的内容
十二生肖{
/*此->*/显示:无;
/*或此->可见性:隐藏*/
}
{{zodiacSign.love_content}}{{#如果您使用models.TextField()表示love content}
函数showContent(contentBlockId){
让content=document.getElementById(contentBlockId);
content.classList.toggle(“生肖内容”);
}

需要使用一个base.html扩展其他html文件。