Python Django Admin中不同模型的相关字段排序

Python Django Admin中不同模型的相关字段排序,python,python-3.x,django,django-admin,Python,Python 3.x,Django,Django Admin,我想按业务名称订购,但由于某些关系,订购不起作用,下面是我的第一个型号: class LoanApplication(models.Model): loan_id = models.CharField( 'Loan Application ID', max_length=40, unique=True, null=True, blank=True) loan_taker = models.ForeignKey( CustomerP

我想按
业务名称
订购,但由于某些关系,订购不起作用,下面是我的第一个型号:

class LoanApplication(models.Model):

    loan_id = models.CharField(
        'Loan Application ID', max_length=40, unique=True, null=True,
        blank=True)
    loan_taker = models.ForeignKey(
        CustomerProfile, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name='Customer Profile', related_name='loan_entries')
    submitted_date = models.DateTimeField(
        'Submitted Date', null=True, blank=True)
然后,我有
客户档案
模型,如下所示:

class CustomerProfile(models.Model):

    customer_id = models.CharField(
        'Customer Profile ID', max_length=64, unique=True, null=True)
    cooperation_partner = models.ForeignKey(
        EmailUser, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('Jurisdiction'), related_name='partner_user_profile')
    user = models.OneToOneField(
        EmailUser, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('User'), related_name='user_profile')
    tipster_partner = models.ForeignKey(
        TipsterPartner, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name='Tipster Partner')
class Business(models.Model):


    business_id = models.CharField(
        'Business ID', max_length=64, unique=True, null=True, blank=True)
    business_name = models.CharField(_('Business'), max_length=128)
    business_address_street = models.CharField(
        'Business Address Street', max_length=50, blank=True)
class CustomerProfileBusiness(models.Model):

    business = models.ForeignKey(
        Business, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('Business'),
        related_name='customer_profile_relation')
    correlative_id = models.CharField(
        _('Business ID'), max_length=64, unique=True, blank=True, null=True)
    customer_profile = models.ForeignKey(
        CustomerProfile, on_delete=models.PROTECT,
        verbose_name=_('Customer Profile'), blank=True, null=True,
        related_name='business')
因此,我想指出商业模式,如下所示:

class CustomerProfile(models.Model):

    customer_id = models.CharField(
        'Customer Profile ID', max_length=64, unique=True, null=True)
    cooperation_partner = models.ForeignKey(
        EmailUser, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('Jurisdiction'), related_name='partner_user_profile')
    user = models.OneToOneField(
        EmailUser, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('User'), related_name='user_profile')
    tipster_partner = models.ForeignKey(
        TipsterPartner, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name='Tipster Partner')
class Business(models.Model):


    business_id = models.CharField(
        'Business ID', max_length=64, unique=True, null=True, blank=True)
    business_name = models.CharField(_('Business'), max_length=128)
    business_address_street = models.CharField(
        'Business Address Street', max_length=50, blank=True)
class CustomerProfileBusiness(models.Model):

    business = models.ForeignKey(
        Business, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('Business'),
        related_name='customer_profile_relation')
    correlative_id = models.CharField(
        _('Business ID'), max_length=64, unique=True, blank=True, null=True)
    customer_profile = models.ForeignKey(
        CustomerProfile, on_delete=models.PROTECT,
        verbose_name=_('Customer Profile'), blank=True, null=True,
        related_name='business')
然后,我们有最后一个是CustomerProfile业务,如下所示:

class CustomerProfile(models.Model):

    customer_id = models.CharField(
        'Customer Profile ID', max_length=64, unique=True, null=True)
    cooperation_partner = models.ForeignKey(
        EmailUser, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('Jurisdiction'), related_name='partner_user_profile')
    user = models.OneToOneField(
        EmailUser, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('User'), related_name='user_profile')
    tipster_partner = models.ForeignKey(
        TipsterPartner, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name='Tipster Partner')
class Business(models.Model):


    business_id = models.CharField(
        'Business ID', max_length=64, unique=True, null=True, blank=True)
    business_name = models.CharField(_('Business'), max_length=128)
    business_address_street = models.CharField(
        'Business Address Street', max_length=50, blank=True)
class CustomerProfileBusiness(models.Model):

    business = models.ForeignKey(
        Business, on_delete=models.PROTECT, null=True, blank=True,
        verbose_name=_('Business'),
        related_name='customer_profile_relation')
    correlative_id = models.CharField(
        _('Business ID'), max_length=64, unique=True, blank=True, null=True)
    customer_profile = models.ForeignKey(
        CustomerProfile, on_delete=models.PROTECT,
        verbose_name=_('Customer Profile'), blank=True, null=True,
        related_name='business')
现在,我在LoanApplication的管理页面中进行排序,如下所示,但它不起作用:

@admin.register(LoanApplication, site=admin_site)
class LoanApplicationAdmin(admin.ModelAdmin):
    ordering = (
        '-modified',
        'loan_taker__business__customer_profile_relation__business_name',
    )

因此,我的目标是按照升序对
业务名称进行排序,但在LoanApplication

的管理页面中使用关系方法,什么不起作用?由于您是在
'-修改'
上的第一批订单,这意味着您将仅在平局时在
业务名称上下单。但是如果
modified
是一个
DateTimeField
,平局的几率几乎为零,因为这两个修改可以在几纳秒内结束。@WillemVanOnsem,谢谢你的贡献,但是我的问题是,这种关系正确吗
贷款人、业务人、客户、个人资料、关系人、业务人、姓名?