2014-03-27 28 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)