2016-04-28 101 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)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 –