相关疑难解决方法(0)

在Django 1.3或更低版本的Django Admin中自定义过滤器

如何向django admin(显示在模型仪表板右侧的过滤器)添加自定义过滤器?我知道很容易包含一个基于该模型字段的过滤器,但是这样的"计算"字段呢:

class NewsItem(models.Model):
    headline = models.CharField(max_length=4096, blank=False)
    byline_1 = models.CharField(max_length=4096, blank=True)
    dateline = models.DateTimeField(help_text=_("date/time that appears on article"))
    body_copy = models.TextField(blank=False)

    when_to_publish = models.DateTimeField(verbose_name="When to publish",  blank=True, null=True)

    # HOW CAN I HAVE "is_live" as part of the admin filter?  It's a calculated state!!
    def is_live(self):
        if self.when_to_publish is not None:
            if ( self.when_to_publish < datetime.now() ):
                return """ <img alt="True" src="/media/img/admin/icon-yes.gif"/> """
        else:
            return """ <img alt="False" src="/media/img/admin/icon-no.gif"/> """      

    is_live.allow_tags = True
Run Code Online (Sandbox Code Playgroud)
class NewsItemAdmin(admin.ModelAdmin):
    form = NewsItemAdminForm
    list_display …
Run Code Online (Sandbox Code Playgroud)

python django django-admin

73
推荐指数
3
解决办法
5万
查看次数

在Django Admin中为list_filter创建自定义过滤器

我想为django admin而不是普通的'is_staff'和'is_superuser'制作自定义过滤器.我在Django docs中读过这个list_filter.自定义过滤器以这种方式工作:

from datetime import date

from django.utils.translation import ugettext_lazy as _
from django.contrib.admin import SimpleListFilter

class DecadeBornListFilter(SimpleListFilter):
    # Human-readable title which will be displayed in the
    # right admin sidebar just above the filter options.
    title = _('decade born')

    # Parameter for the filter that will be used in the URL query.
    parameter_name = 'decade'

    def lookups(self, request, model_admin):
        """
        Returns a list of tuples. The first element in each
        tuple is the coded value for …
Run Code Online (Sandbox Code Playgroud)

django django-admin

52
推荐指数
3
解决办法
4万
查看次数

如何覆盖list_filter中提供过滤器的查询集?

鉴于以下型号

class AnotherModel(models.Model):
    n = models.IntegerField()

class MyModel(models.Model):
    somefield = models.ForeignKey(AnotherModel)
Run Code Online (Sandbox Code Playgroud)

和管理员

class MyModelAdmin(admin.ModelAdmin):        
    list_filter = ('somefield',)
Run Code Online (Sandbox Code Playgroud)

如何过滤实例AnotherModel以仅n在管理过滤器中显示具有给定值的实例?

我需要这样的东西:

过滤

通过某个地方

所有

[给定n的AnotherModel实例列表]

django admin

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

django ×3

django-admin ×2

admin ×1

python ×1