2

我正在使用 django 构建一个文章站点。我以这种方式在我的文章之间添加了多对多的关系:

class Article (models.Model):
    # Tiny url
    url = models.CharField(max_length = 30, unique=True)
    is_published = models.BooleanField()
    author = models.CharField(max_length = 150)
    title = models.CharField(max_length = 200)
    short_description = models.TextField(max_length = 600)
    body = tinymce_models.HTMLField()
    related = models.ManyToManyField("self")

现在在我的管理站点中,我看到了多个选择框(请参见此处的图片http://img.skitch.com/20091017-mfs2mbhbuudk2rgquium1bu61d.png

我想要的是使用此框可供选择文章以将它们绑定到当前文章的用户使用。例如,有没有办法在那里添加一些过滤?例如,如果我想按部分过滤所有文章?然后关闭以前的结果并按名称过滤整个集合等?

提前致谢

+++

我正在尝试调查向管理员添加水平过滤器的可能性。但是在我这样添加之后:

class ArticleAdmin(admin.ModelAdmin):
    exclude = ('video', )

    js = ('/site_media/js/tiny_mce/tiny_mce.js', 
          )
    list_display = ('title', 'author', 'section', 'is_published', 'pub_date')
    list_filter = ('author', 'section', 'is_published', 'pub_date')
    filter_horizontal = ['related', ]
    search_fields = ['body', 'title', 'short_description', 'seo_keywords']

所有文章都从管理员中消失了:(

4

1 回答 1

0

如果您寻找基本过滤,试试这个那个

如果您想自定义过滤,您实际上可以这样做。一个小指南:

子类forms.SelectMultiple化或直接现有的FilteredSelectMultiplefromdjango.contrib.admin.widgets并使其做你想做的事。

然后在您的 admin.py 中子类化 ModelAdmin 并覆盖formfield_for_manytomany(查找django.contrib.admin.options该方法)并将现有小部件与您的新小部件交换。

于 2009-10-18T09:30:22.303 回答