Djang的“主页面”管理

2024-09-21 03:18:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django创建一个简单的网站,在那里我使用模板继承。“母版页”模型包含显示在所有页面上的信息,例如页眉或页脚。我不能硬编码,因为我需要它可以从管理页面编辑。在

目前(一些)我的模型看起来有点像这样:

class MasterContent(models.Model):
    title_header = models.CharField(max_length=200)
    name_header = models.CharField(max_length=200)

class ProfileContent(models.Model):
    description = models.TextField()
    profile_picture = models.ImageField(upload_to='profile')

然后我渲染成这样的视图:

^{pr2}$

现在,我需要从一个不同的应用程序呈现一个视图,但是我仍然希望母版页内容能够被传递。如果每次呈现视图时都必须手动包含master_page内容(即使使用快捷方式也似乎是错误的),那么这将变得非常混乱。我尝试将MasterContent抽象化,但这迫使我在继承它的所有其他模型中重新输入数据,这是一种更糟糕的情况。在

简而言之:我如何能够轻松地在所有视图中跨应用程序提供数据,这些数据可以在管理页面的单个位置编辑,同时保持干燥!

注意:我还认为必须有一种更平滑的方法(类似于flatpages)来管理配置文件页面的内容,而不是使用一个我只使用一个实例/行的模型,但我选择暂时忽略这一点。。。在


Tags: 模型视图编辑内容modelmodels页面profile
2条回答

对不起,如果我不能完全理解你的问题,但你不能直接导入主内容吗?在

例如

from mainapp.models import MasterContent
from mainapp.views import content_shortcut

那就开始你的新观点吧

^{pr2}$

听起来一个^{}甚至一个^{}应该可以很好地完成这项工作。 您可以查询标记中的内容并将标记嵌入基模板中。在

如果您在每个页面上都需要这些信息,^{}可能是另一个选择,尽管模板标记可能更适合您的用例。在

相关问题 更多 >

    热门问题