2016-04-28 7 views
0

Ich habe verschiedene Tutorials für Django-Taggit ausprobiert, aber aus irgendeinem Grund zeigen sie alle, wie Tags über Admin hinzugefügt werden. Ich frage mich, ob ich Tags mithilfe von Ansicht und Vorlage hinzufügen kann, während ich eine Instanz von Model erstelle? oder sollte ich Tags nur vorhandenen Elementen hinzufügen? Gibt es neue Tutorials für Django-Taggit oder meine bessere App für Tags?Hinzufügen von Tags mit Django-Taggit

Antwort

0

Ihre documentation ist ziemlich schwellen. Sobald Sie Ihr Modell eingerichtet haben, können Sie das Tag-Feld wie jedes andere Feld in einem Formular verwenden. Es wird automatisch eingerichtet, um die Tags zu analysieren.

Hier ist ein sehr einfaches Arbeitsbeispiel.

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'] 

templates/NewsIndex-/overview.html

<form class="" action="./" method="post"> 
    {% csrf_token %} 
    {{form.as_p}} 
    <input type="submit" name="submit" value="Submit"> 
    </form> 
+0

Hi Beste Version, wenn diese oder irgendeine Antwort Ihre Frage gelöst hat, beachten Sie bitte [akzeptieren] (http://meta.stackexchange.com/q/5234/179419), indem Sie auf das Häkchen klicken. Dies zeigt der breiteren Gemeinschaft, dass Sie eine Lösung gefunden haben und sowohl dem Antworter als auch Ihnen einen guten Ruf verschaffen. Es besteht keine Verpflichtung, dies zu tun. –

Verwandte Themen