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,谢谢你的贡献,但是我的问题是,这种关系正确吗贷款人、业务人、客户、个人资料、关系人、业务人、姓名?