gpt4 book ai didi

Django - 带有自定义非相关对象的 admin_order_field

转载 作者:行者123 更新时间:2023-12-05 01:21:04 36 4
gpt4 key购买 nike

如何在具有相反类型关系的方法中使用 admin_order_field?

是否可以使用一些聚合查询集函数?

class Card(models.Model):
serial_number = models.CharField(max_length=200)
...

class License(models.Model):
expiration = models.DateTimeField('Expiration')
card = models.ForeignKey('Card')
...

class Pc(models.Model):
card = models.ForeignKey('Card')
...

class PcAdmin(admin.ModelAdmin):
...

def expiration(self, obj):
try:
license = License.objects.get(card=obj.card, type="xxx")
expiration = license.expiration

except (License.DoesNotExist, TypeError):
expiration = "N/A"

return expiration
expiration.short_description = _("Expiration")
expiration.admin_order_field = ???

最佳答案

基本上,如果您可以按照处理字段的方式引用某些内容,则可以在 admin_order_field 中使用它。

因此,如果您想按Card 的 serial_number 订购,您可以说 `admin_order_field = 'card__serial_number'。

或者,如果您想使用注释,您可以通过首先定义一个 get_queryset() 来实现。创建注解的方法;然后使用新的注释名称作为您的 admin_order_field

但在你的情况下,你不能这样做。问题是对 type="xxx" 的限制;无法使用字段表示法来表示该逻辑。

不过,使用 extra() 是可能的用您想要的信息定义自定义字段,然后将其用作您的 admin_order_field

关于Django - 带有自定义非相关对象的 admin_order_field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26191543/

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