2016-04-28 3 views
0

Я пробовал разные учебники для Django-taggit, но по какой-то причине все они показывают, как добавлять теги через Admin. Мне было интересно, могу ли я добавлять теги, используя View и template при создании экземпляра модели? или я должен добавлять теги только к существующим элементам? Есть ли недавние учебники для Django-Taggit или мое лучшее приложение для тегов?Добавление тегов с Django-Taggit

ответ

0

Их 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.title 

forms.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> 
+0

Привет, Лучшая версия, если этот или любой ответ разрешил ваш вопрос, пожалуйста, рассмотрите [принять его] (http://meta.stackexchange.com/q/5234/179419), нажав галочку. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. Это не обязательно. –

 Смежные вопросы

  • Нет связанных вопросов^_^