如果您希望每次渲染页面时随机化这些字符串,可以使用上下文处理器。
import random
SENTENCES = (
'Lorem ipsum...',
'Fight Club的第一条规则是...',
'你看那是什么?',
'就看它!',
)
def get_landing_page_sentences() -> list:
return random.sample(SENTENCES, 3)
def app_context(request) -> dict:
return {
'landing_page_sentences': get_landing_page_sentences()
}
如果要在运行时更改句子本身,那么我会使用一个简单的数据库模型加上上下文处理器。创建表格的成本很低,我认为没有必要引入另一种机制或持久化层。
from django.db import models
class LandingPageSentence(models.Model):
sentence = models.CharField(max_length=255)
def app_context(request) -> dict:
return {
'landing_page_sentences': LandingPageSentence.objects.order_by('?')[:3]
}