Django继承避免创建许多html文件
我是Django的新手。我有任务,我有星座网站,有12个星座水瓶座,白羊座等。。。。在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 %}
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文件。