小编fre*_*o.r的帖子

标记库的Django注册不起作用

我尝试在django中注册我的自定义模板标签库,但不幸的是它无法正常工作!

我想创建一个自定义包含标签,并按照以下说明进行操作:https : //docs.djangoproject.com/en/1.11/howto/custom-template-tags/#howto-custom-template-tags-inclusion-tags

我创建了一个名为“ tag_lib”的应用程序(安装在settings.py中),用于放置模板标签。在app文件夹中有一个名为“ templatetags”的字典,其中包含一个空字符__init__.py和my my_tags.py

my_tags.py 包含:

from django import template


register = template.Library()


@register.inclusion_tag(filename='navbar.html', takes_context=True)
def navbar_context(context):
    return {
        'some_var': context['some_var'],
    }
Run Code Online (Sandbox Code Playgroud)

当我重新启动devserver并尝试使用

{% load my_tags %} `
Run Code Online (Sandbox Code Playgroud)

在模板中,出现错误:

TemplateSyntaxError at /

'my_tags' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_static
admin_urls
cache
i18n
l10n
log
static
staticfiles
tz
Run Code Online (Sandbox Code Playgroud)

知道我犯错了吗?

谢谢。

python django templatetags

3
推荐指数
2
解决办法
2630
查看次数

ManytoMany字段中的Django ForeignKey显示为None

我有一个在很多领域使用外键的模型:

class DefinitionTag(models.Model):
    tag = models.CharField(max_length=50, default="Tag")

    def __str__(self):
        return self.tag


class Definition(models.Model):
    name = models.CharField(max_length=100)
    definition = models.CharField(max_length=1000)
    fundstellen = models.CharField(max_length=300, blank=True)
    wissenswertes = models.CharField(max_length=1000, blank=True)
    tags = models.ManyToManyField(DefinitionTag)

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

这工作,并在管理员一切都设置好所以我可以使用它.问题是,如果我尝试使用代码在我的视图中显示包含数据库条目的表:

def home(request):
    query_results = Definition.objects.all()

    context = {
        "query_results": query_results
    }
    return render(request, 'home.html', context)
Run Code Online (Sandbox Code Playgroud)

并在HTML中:

{% for item in query_results %}
    <tr>
        <td>{{ item.name }}</td>
        <td>{{ item.definition }}</td>
        <td>{{ item.fundstellen }}</td>
        <td>{{ item.wissenswertes }}</td>
        <td>{{ item.tags }}</td>
    </tr>
    {% endfor %}
Run Code Online (Sandbox Code Playgroud)

在标签栏中,它只给我:

DefinitionTag.None

如何在manytomany字段中显示所有标签? …

database sqlite django python-3.x

2
推荐指数
1
解决办法
785
查看次数

标签 统计

django ×2

database ×1

python ×1

python-3.x ×1

sqlite ×1

templatetags ×1