【发布时间】:2018-05-29 14:15:21
【问题描述】:
我已经实现了一个全局变量,但我真的不知道如何访问它。我发现的例子有点混乱。
models.py
...
# Categorys of Post Model
class Category(models.Model):
title = models.CharField(max_length=255, verbose_name="Title")
class Meta:
verbose_name = "Category"
verbose_name_plural = "Categories"
ordering = ['title']
def __str__(self):
return self.title
#Post Model
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField(max_length=10000)
category = models.ForeignKey(Category, verbose_name="Category", on_delete=models.CASCADE, null=True)
...
settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"Post.global.category_dropdown",
)
global.py
from .models import Category
def category_dropdown(request):
categories = Category.objects.all()
return {'categories': categories}
base.html:
<body>
<div class="page-header">
<form method="POST">
<label>
<select name="Category">
{% for global in category_dropdown %}
<option value="{{ categorie.title }}">{{ categorie.title }} {{ categorie.post_set.count }}</option>
{% endfor %}
</select>
</label>
</form>
- 我不确定它是否以正确的方式实施。
- 我不知道如何访问全局变量。在模板中
最后,这应该在每个页面的标题中显示一个下拉菜单,从数据库中获取他的值,正如您在 models.py 中看到的那样
提前致谢
【问题讨论】:
-
模板标签或上下文处理器。