在 Django 项目中使用 Django-Taggit 添加标签
Django-Taggit 是一个 Django 应用程序,用于向博客、文章等添加标签。它使我们很容易将标签功能添加到我们的 django 项目中。
设置 Django 项目
- 安装 django-taggit
pip install django-taggit
- 将其添加到主项目的 settings.py 文件中
Python3
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'taggit'
]
Python3
from django.db import models
from django.utils.timezone import now
from taggit.managers import TaggableManager
class Post(models.Model):
postid = models.AutoField(primary_key=True)
title = models.CharField(max_length=255)
content = models.TextField()
author = models.CharField(max_length=100)
postauthor = models.ForeignKey(User, on_delete=models.CASCADE)
slug = models.SlugField(unique=True)
category = models.CharField(max_length=200)
timestamp = models.DateTimeField(default=now, blank=True)
tags = TaggableManager()
- 对models.py文件的更改
在您的帖子、博客、文章模式中添加 TaggableManager
蟒蛇3
from django.db import models
from django.utils.timezone import now
from taggit.managers import TaggableManager
class Post(models.Model):
postid = models.AutoField(primary_key=True)
title = models.CharField(max_length=255)
content = models.TextField()
author = models.CharField(max_length=100)
postauthor = models.ForeignKey(User, on_delete=models.CASCADE)
slug = models.SlugField(unique=True)
category = models.CharField(max_length=200)
timestamp = models.DateTimeField(default=now, blank=True)
tags = TaggableManager()
添加 TaggableManager 后,在终端中运行以下命令
- Python manage.py makemigrations
Python manage.py 迁移
TaggableManager 将自动显示为 post modal 中的一个字段
Taggit 模态也将在管理面板中自动显示为单独的模态
添加标签
1) 如果标签输入不包含任何逗号或双引号,它将被视为以空格分隔的列表
标签名称。
geeks for geeks => "geeks", "for", "geeks"
2) 如果标签输入确实包含逗号或双引号,则:
a) geeks, geeks for geeks => "geeks", "geeks for geeks"
b) "geeks, forgeeks" geek geeksfor => "geeks, forgeeks", "geek", "geeksfor"
c) "geeks, forgeeks", geek geeksfor => "geeks, forgeeks", "geeks geeksfor"
d) geeks "for" geeks => "geeks", "for", "geeks"
将标签添加到帖子后,taggit 模式将如下所示:
单击特定标签后,将出现与该特定标签相关联的所有帖子的列表。现在这个模型可以像其他模型一样与项目一起使用