2016-04-28 49 views
0

我尝试过不同的Django-taggit教程,但由于某些原因,它们都显示如何通过管理员添加标签。我想知道是否可以在创建Model的实例时使用View和模板添加标签?或者我应该只添加标签到现有的项目?有没有最近的教程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'] 

模板/新闻索引/ 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)。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 –