2012-09-24 45 views
5

我是django的新手,我有一个很基本的问题。如何使用django在网站上存储静态文本

可以说我有这个主题:

enter image description here

我做了一个项目了,所以我知道一点知道如何建立模型动态内容,将它们传递到视图和管理面板等,但是:

问题:上面的图片上我标记了3个包含文本的容器。整个网站上只有一个这样的文字实例,它不可重复。如果我为自己开发,我只会硬编码,但如果我为客户开发,需要使用管理面板来编辑这些字段,该怎么办?

我应该为整个网站创建一个单独的类,其中包含多个这样的容器(可以说20个)字段,在视图中传递该类(并使用[:1]进行过滤)以在模板中使用它?

这是我想出的唯一的东西。虽然它会起作用,但我认为这是一个可怕的解决方案。

回答

4

我会做的是写一个包含Blurb的插入TextFieldCharField识别它,并且custom template tag通过你传递给它的参数从数据库读取的Blurb的一个模型。

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 %} 
+0

要花费一些时间去理解它是如何工作和虐待报告如何去算账,谢谢:) – Chris

+0

好了,我得到了我的头周围。因为文档指出:“该应用程序应该包含一个templatetags目录,与models.py,views.py等级相同。”这意味着即时通讯只能在与某些应用程序视图相关的模板中使用特定的模板标签吗?这意味着我应该为每个应用创建不同的“blurb”类吗? – Chris

+2

您将创建一个单独的“blurb”应用程序,其中包含模型,模板标记库和可选的管理视图。 –

2

您可以选择1个模型,其中包含模型中文本的描述符。

喜欢的东西:

class SomeText(models.Model): 
    position = models.CharField(max_length=120, choices=POSITION_DESCRIPTORS) 
    text = models.TextField() 
+0

要阅读关于描述符是如何工作的,并且生病回到这里,谢谢! – Chris

+0

我应该如何将它传递给模板?我应该让SomeText类成为一个全球性的,可以通过整个网站使用TEMPLATE_CONTEXT_PROCESSORS访问吗? – Chris

相关问题