具有单独字段的 Django 模型 __str__

Django model's __str__ with seperate fields

我有一个模型,其中 return 是一个财政年度和一个描述。目前属性合并为一个值作为一个字段。

如您所见,年份 2021 和描述 test。我可以单击将我带到详细信息页面的字段。

我的代码:

    class Meta:
    ordering = ['description', 'accounting_year', 'swift_code']
    verbose_name_plural = "Extractions"

def __str__(self):
    return f'{self.accounting_year} {self.description}'

我想实现但无法弄清楚也无法在网上找到的是将两个字段拆分为单独的列。因此,2021 作为一列,test 作为一列。

此外,我希望能够排序甚至过滤,因为其中一个字段是提取日期。如果管理员用户可以将顺序从最新更改为最旧,反之亦然,只需按名称或日期进行过滤,那就太好了。有这方面的文档吗?

试试这个

在你的 apps/admin.py

from django.contrib import admin
from yourapp.models import Extraction

class ExtractionAdmin(admin.ModelAdmin):
    list_display = ['accounting_year', 'description']


admin.site.register(Extractions, ExtractionAdmin)

过滤器参考 https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.filter_horizontal

排序参考 https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.sortable_by