我是django的新手,我认为这是一个非常基本的问题。
让我说我有这个主题:
我已经创建了一个项目,所以我知道如何为动态内容构建模型,将它们传递给视图和管理面板等,但是:
问题:在上图中我标记了3个包含文字的容器。整个网站上只有这个文本的一个实例,并且它不可重复。如果我为自己开发,我只会硬编码,但如果我为客户开发,需要能够使用管理面板编辑这些字段呢?
我是否应该为整个网站为这些类型的容器创建一个包含多个(比如说20个)字段的单独类,在视图中传递该类(并使用[:1]
进行过滤)以在模板?
这是我想出的唯一一件事。虽然它会起作用,但我认为这是一个糟糕的解决方案。
答案 0 :(得分:4)
我要做的是编写一个模型,其中包含要插入的blurb的TextField
和用于标识它的CharField
,以及一个从数据库中读取blurb的custom template tag你传递给它的论据。
class Blurb(models.Model):
ident = models.CharField(..., db_index=True)
blurb = models.TextField(...)
PK ident text
1 main Hey! Do you like this template? This...
{% load blurb %}
...
{% blurb main %}
答案 1 :(得分:2)
你可以拥有一个带有选择字段的模型,其中包含模型中文本的描述符。
类似的东西:
class SomeText(models.Model):
position = models.CharField(max_length=120, choices=POSITION_DESCRIPTORS)
text = models.TextField()