Я пробовал разные туториалы для Django-taggit, но почему-то все они показывают, как добавлять теги через Admin. Мне было интересно, могу ли я добавить теги, используя представление и шаблон, при создании экземпляра модели? или я должен добавлять теги только к существующим элементам? Есть ли какие-нибудь свежие руководства по Django-Taggit или моему лучшему приложению для тегов?
Добавление тегов с помощью Django-Taggit
Ответы (2)
Их документация довольно обширна. После того, как вы настроили свою модель, вы можете использовать поле тега так же, как любое другое поле в форме. Он будет автоматически настроен для разбора тегов.
Вот очень простой рабочий пример.
просмотры.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)
модели.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.title
формы.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']
шаблоны/newsindex/overview.html
<form class="" action="./" method="post">
{% csrf_token %}
{{form.as_p}}
<input type="submit" name="submit" value="Submit">
</form>
person
Stephen Delaney
schedule
06.06.2016
Если вы хотите добавить тег из оболочки, попробуйте:
tag='tag to add'
post=NewspaperIndex.objects.all()[0] #pick an object, to add tag to
post.tags.add(tag)
person
alis01
schedule
22.04.2020