我正在使用 Django inclusion_tag 和 Wagtail 站点设置
I am working with Django inclusion_tag and Wagtail Site Setting
我是 Django 和 Wagtail 的新手,我遇到的问题很少。
我想使用 Django 评估 Wagtail 站点设置 inclusion_tag。
简而言之,index.html 中的 {{ settings.app_1.SimpleHtmlSettings.heading }} 和 {{ settings.app_1.SimpleHtmlSettings.body }} 没有打印任何东西。
我总共尝试了两种解决方案,但没有一种有效
app_1_extras.py (simple_html = SimpleHtmlSettings.for_site(上下文['request'].site))
app_1_extras.py (simple_html = SimpleHtmlSettings.objects.first)
models.py
from django.db import models
from wagtail.contrib.settings.models import BaseSetting, register_setting
# Create your models here.
@register_setting
class SimpleHtmlSettings(BaseSetting):
heading = models.CharField(
max_length=255, help_text='Enter heading')
body = models.CharField(
max_length=255, help_text='Enter body content')
views.py
from django.shortcuts import render
from app_1.models import SimpleHtmlSettings
from django.http import HttpResponse
# Create your views here.
def index(request):
return render(request, 'app_1/test.html')
app_1_extras.py
from django import template
from app_1.models import SimpleHtmlSettings
register = template.Library()
@register.inclusion_tag('app_1/index.html', takes_context=True)
def show_results(context):
# simple_html = SimpleHtmlSettings.for_site(context['request'].site)
simple_html = SimpleHtmlSettings.objects.first
return {'simple_html': simple_html}
index.py
{% load wagtailsettings_tags %}
<h1>{{ settings.app_1.SimpleHtmlSettings.heading }}</h1>
<p>{{ settings.app_1.SimpleHtmlSettings.body }}</p>
<p>Check</p>
test.py
{% load wagtailsettings_tags %}
{% load app_1_extras %}
{% show_results %}
test.html 只打印 "Check"
谢谢!!!
您将变量 simple_html
设置为在您的 index.html
模板中可用,然后从不使用该变量。 index.html 应该变成:
<h1>{{ simple_html.heading }}</h1>
<p>{{ simple_html.body }}</p>
<p>Check</p>
我是 Django 和 Wagtail 的新手,我遇到的问题很少。
我想使用 Django 评估 Wagtail 站点设置 inclusion_tag。
简而言之,index.html 中的 {{ settings.app_1.SimpleHtmlSettings.heading }} 和 {{ settings.app_1.SimpleHtmlSettings.body }} 没有打印任何东西。
我总共尝试了两种解决方案,但没有一种有效
app_1_extras.py (simple_html = SimpleHtmlSettings.for_site(上下文['request'].site))
app_1_extras.py (simple_html = SimpleHtmlSettings.objects.first)
models.py
from django.db import models
from wagtail.contrib.settings.models import BaseSetting, register_setting
# Create your models here.
@register_setting
class SimpleHtmlSettings(BaseSetting):
heading = models.CharField(
max_length=255, help_text='Enter heading')
body = models.CharField(
max_length=255, help_text='Enter body content')
views.py
from django.shortcuts import render
from app_1.models import SimpleHtmlSettings
from django.http import HttpResponse
# Create your views here.
def index(request):
return render(request, 'app_1/test.html')
app_1_extras.py
from django import template
from app_1.models import SimpleHtmlSettings
register = template.Library()
@register.inclusion_tag('app_1/index.html', takes_context=True)
def show_results(context):
# simple_html = SimpleHtmlSettings.for_site(context['request'].site)
simple_html = SimpleHtmlSettings.objects.first
return {'simple_html': simple_html}
index.py
{% load wagtailsettings_tags %}
<h1>{{ settings.app_1.SimpleHtmlSettings.heading }}</h1>
<p>{{ settings.app_1.SimpleHtmlSettings.body }}</p>
<p>Check</p>
test.py
{% load wagtailsettings_tags %}
{% load app_1_extras %}
{% show_results %}
test.html 只打印 "Check"
谢谢!!!
您将变量 simple_html
设置为在您的 index.html
模板中可用,然后从不使用该变量。 index.html 应该变成:
<h1>{{ simple_html.heading }}</h1>
<p>{{ simple_html.body }}</p>
<p>Check</p>