我尝试过Django-taggit的不同教程,但出于某种原因,它们都显示了如何通过Admin添加标签。我想知道在创建Model的实例时,是否可以使用View和template添加标签?或者我应该只将标签添加到现有项目中?Django-Taggit或我的be better标签应用程序最近有什么教程吗?
发布于 2016-06-07 05:48:02
他们的documentation相当不错。一旦建立了模型,就可以像使用表单中的任何其他字段一样使用标记字段。它将自动设置为解析标签。
这是一个非常基本的工作示例。
views.py
from django.shortcuts import render
from .models import NewspaperIndex
from .forms import NewIndexForm
def overview(request):
if request.method == "POST":
form = NewIndexForm(request.POST)
if form.is_valid():
form.save()
else:
form = NewIndexForm()
indexes = NewspaperIndex.objects.all()
context = {'form': form,
'indexes': indexes
}
return render(request, 'newsindex/overview.html', context)models.py
from django.db import models
from taggit.managers import TaggableManager
class NewspaperIndex(models.Model):
title = models.CharField(max_length=200)
date = models.DateField()
abstract = models.TextField()
tags = TaggableManager()
def __str__(self):
return self.titleforms.py
import datetime
from django import forms
from django.forms import ModelForm
from .models import NewspaperIndex
class NewIndexForm(forms.ModelForm):
class Meta:
model = NewspaperIndex
fields = ['title', 'date', 'abstract', 'tags']模板/新闻索引/overview.html
<form class="" action="./" method="post">
{% csrf_token %}
{{form.as_p}}
<input type="submit" name="submit" value="Submit">
</form>发布于 2020-04-22 16:47:19
如果您想从shell中添加标记,请尝试:
tag='tag to add'
post=NewspaperIndex.objects.all()[0] #pick an object, to add tag to
post.tags.add(tag)https://stackoverflow.com/questions/36919694
复制相似问题