2014-03-27 27 views
1

所以我想用django和djanggo-taggit做一個簡單的博客。使Django-taggit顯示admin中標籤的值

這是我的models.py

from django.db import models 
from django.db.models import permalink 
from taggit.managers import TaggableManager 

class Post(models.Model): 
    title = models.CharField(max_length=100, unique=True) 
    slug = models.SlugField(max_length=100, unique=True) 
    body = models.TextField() 
    posted = models.DateField(db_index=True, auto_now_add=True) 
    category = models.ForeignKey('Category') 
    tag = TaggableManager() 

    def __unicode__(self): 
     return '%s' % self.title 


class Category(models.Model): 
    title = models.CharField(max_length=100, db_index=True) 
    slug = models.SlugField(max_length=100, db_index=True) 

    def __unicode__(self): 
     return '%s' % self.title 

    class Meta: 
     verbose_name_plural = 'categories' 

這是我的admin.py

from django.contrib import admin 
from .models import Post, Category 


class PostAdmin(admin.ModelAdmin): 
    exclude = ('posted',) 
    list_display = ('title', 'category', 'tag', 'posted') 
    list_filter = ('posted', 'tag') 
    search_fields = ('title', 'body', 'category', 'tag') 
    prepopulated_fields = {'slug': ('title',)} 


class CategoryAdmin(admin.ModelAdmin): 
    prepopulated_fields = {'slug': ('title',)} 

admin.site.register(Post, PostAdmin) 
admin.site.register(Category, CategoryAdmin) 

眼下在http://127.0.0.1:8000/admin/blog/post/在標籤選項卡顯示<taggit.managers._TaggableManager object at 0x01AE4650>。我怎樣才能讓它顯示對象的標題? 由於提前

回答

2

這裏說你不能用列表顯示直接使用它: http://django-taggit.readthedocs.org/en/latest/admin.html

你可以得到你的標籤是這樣的:

class PostAdmin(admin.ModelAdmin):  
    list_display=['get_tags'] 

    def get_tags(self, post): 
     tags = [] 
     for tag in post.tags.all(): 
      tags.append(str(tag)) 
     return ', '.join(tags)