Django管理员 - 存储小块数据

时间:2012-10-11 17:15:43

标签: python django django-admin

我对django很新。

我有一个问题需要解决。

我的网站有几个地方我想放一些由管理面板管理的内容(静态文本)。 我知道有django flatpage或者像django-chunk这样的项目。 Flatpage只有几个字段,而django-chunk都在一个地方(键值)。

我想在编辑视图中添加面板管理员新位置,用户可以在其中填写几个文本字段。保存数据存储在文件(或数据库)中。

一般来说,我想存储一些文本,如电话号码,地址,一些标语,这些文字在几页上。并且创建具有完整CRUD的模型是不必要的。

我该怎么做?有可能吗?

1 个答案:

答案 0 :(得分:0)

你提到创建一个模型是不必要的,但不是为什么。我认为这是正确的方法。

class Snippet(models.Model):
    name = models.CharField(max_length=24)
    body = models.TextField()

将其注册到管理员,并根据需要创建任意数量的代码段。如果您只希望用户能够编辑您指定的用户,则可以禁用添加和删除权限。

将它们添加到模板上下文中:

def get_context_data(self, request, *args, **kwargs):
    data = super(MyView, self).get_context_data(request, *args, **kwargs)
    data['snippet1'] = Snippet.objects.get(name='snippet1').body
    data['snippet2'] = Snippet.objects.get(name='snippet2').body
    return data

然后在模板中打印:

...
Contact us at {{ snippet1 }}!
...

这有点简化。您可能需要一个视图mixin,它根据声明的名称列表添加您需要的所有片段,您可能希望优化查询,这样您就不会遍历并按每次请求命中数据库10次,但这是一个好的开始一个简单的解决方案。