gpt4 book ai didi

python - 使用查询从特定表中获取数据并将其显示在 django 的管理端

转载 作者:行者123 更新时间:2023-12-01 01:30:49 25 4
gpt4 key购买 nike

我正在开发一个 Django 项目,我想从特定表中获取数据并将其显示在管理端。

我有一个 Company 模型,已使用 admin.site.register(Company, Company_Admin) 在管理中注册。现在我想在从表中查询所有公司后获取所有公司,然后在管理站点中显示结果。

class Company(models.Model):
name = models.CharField(default=None,max_length=200)
description = models.TextField(default=None)
url = models.CharField(max_length=200)
published = models.BooleanField()
createdOn = models.DateTimeField(default=datetime.utcnow)
updatedOn = models.DateTimeField(default=datetime.utcnow)
keywords = models.ManyToManyField(Keyword)

def __unicode__(self):
return self.text

class CompanyAdmin(admin.ModelAdmin):
list_display = ['name', 'url', 'description', 'published', 'createdOn', 'updatedOn']
list_filter = ['name']
search_fields = ['name']
filter_horizontal = ('keywords', )

admin.site.register(Company, CompanyAdmin)

现在我想在管理面板中创建一个选项,该选项将显示所有已发布的公司,也就是说,甚至不显示未发布的公司。

最佳答案

根据 ModelAdmin.list_filter 上的文档,您可以尝试将字段名称添加到该属性中。这应该会在更改 View 的右侧栏中为您提供一个新的过滤器选项。

class CompanyAdmin(admin.ModelAdmin): 
...
list_filter = ['name', 'published']
...
<小时/>

但是,如果您想对管理员完全隐藏所有未发布的实例(我不知道是否是这样,我不完全理解您的问题),那么您可以修改 ModelAdmin.get_queryset() method .

class CompanyAdmin(admin.ModelAdmin): 
...
def get_queryset(self, request):
return super().get_queryset(request).filter(published=True)
...

关于python - 使用查询从特定表中获取数据并将其显示在 django 的管理端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52887621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com