2011-04-05 51 views
0

我正在創建一個小博客應用程序。下面是從我的觀點一個片段: views.py在數據庫中存儲應用常量

from django.shortcuts import render_to_response 
from blog.post.models import Post, Comment 
from django.contrib.auth.models import User 
from django.http import Http404 

PAGE_SIZE = 5 
ABSTRACT_CONTENT_SIZE = 300 

def main(request, page = 0): 
    post_objects = Post.objects.filter(visible = True)[page : page + PAGE_SIZE] 
    posts = [] 
    for p in post_objects: 
     if len(p.content) > ABSTRACT_CONTENT_SIZE: 
      abstract = p.content[:ABSTRACT_CONTENT_SIZE] + '...' 
     else: 
      abstract = p.content 
     posts.append({ 
     'subject': p.subject, 
     'content': abstract, 
     'author': p.author, 
     'date': p.date, 
     'noc': p.number_of_comments, 
     'number': p.pk 
     }) 
    return render_to_response('main.html',{'posts': posts}) 

我想將這些常量2到數據庫(所以我以後可以從管理員進行管理)。問題是,我應該如何在視圖中加載它們,或者有另一種方法來執行此任務?先謝謝你。

回答

4
class SiteSettings(models.Model): 
     value = models.IntegerField() # Assuming you are only using integer value 
     type = models.CharField(unique=True) # could also make this the primary key 


PAGE_SIZE = SiteSettings.Objects.filter(type="page_size").get() 
# you should be able to do this as well since type is unique 
PAGE_SIZE = SiteSettings.Objects.get(type="page_size") 
PAGE_SIZE.value 
+0

哪裏的商店網站,明智的方式把那個「得到()」的方法?在每個方法內或導入視圖時?關於模型。我認爲創建單身人士,但你的模型更具吸引力:) – Kukmedis 2011-04-05 18:04:44

+0

get是一個內置的django模型類的方法,將返回一個對象/記錄。 – solartic 2011-04-05 18:23:07

+0

其他方式。您的代碼段的第6行屬於哪裏? – Kukmedis 2011-04-05 21:20:20