所以我有一个
base.html
文件,其中存在所有其他模板中常见的所有组件。我正在尝试在我的 django 项目中实现新闻通讯表单功能。此表单应显示在所有页面上(在顶部导航栏中)。
但这里的问题是,此表单仅显示在 base.html
上,而不显示在扩展此文件的其他模板页面上。
base.html
{% load static %}
<html lang="en">
<body>
<div id="overlay">
<div class="overlay-body form-group">
<h2>Subscribe to our newsletter</h2>
<form method="post">
{% csrf_token %}
{{form}}
<button type="reset" onclick="off()">Cancel</button>
<button type="submit" value="submit">Submit</button>
</form>
</div>
</div>
<div class="container">
<header>
<div>
<div class="col-4 "><a id="blog-side" onclick="on()">Subscribe</a></div>
<div class="col-4 ">
<img src="{% static 'img/logo.png' %}" alt="Logo">
<a href="{% url 'home' %}" class="title">Blog</a>
</div>
<div class="col-4 "><a href="{% url 'about' %}" id="blog-side">About</a></div>
</div>
</header>
{% block content %}
{% endblock content %}
</div>
</body>
</html>
这是来自
models.py
的时事通讯表格
class Newsletter(models.Model):
email = models.EmailField()
entered_on = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=True)
def __str__(self):
return self.email
forms.py
class NewsletterForm(forms.ModelForm):
class Meta:
model = Newsletter
fields = ('email', )
知道如何在其他模板中设置此表单吗?
这里的问题是,您需要确保在您创建的每个视图中发送表单。