Django admin根据另一个字段值过滤外部字段

时间:2018-10-17 19:28:26

标签: django python-3.x django-models django-admin

在我的django应用程序的管理面板中,当我为表添加/编辑表单时,我有两个外键列(组合),即main_id和Test_id。

我将根据main_id字段选择中的预览选择来过滤test_id字段中包含的结果。

在我的admin.py中,我尝试:

public static void main(String[] args)
{
      int d1 = 0;
      int d2 = 0;
      int trials = 0;
      int d1bigger = 0;
      Random rand = new Random();

      while(d1bigger < 2)
      {
            d1 = rand.nextInt((6 - 1) + 1) + 1 ;
            d2 = rand.nextInt((6 - 1) + 1) + 1 ;
            if(d1 > d2)
            {
                d1bigger ++;
                trials++;
            }
            if(d2 > d1)
            {
                d1bigger = 0;
                trials++;
            }                
      }
      System.out.println("It took " + trials +  " trials for d1 to be larger than d2 two times in a row");
}

但是我不知道我该怎么写。”

我尝试使用main_id__id或main_id.id,但不正确。

如何在main_id组合中检索选择值并将其传递给我的方法?

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Django Smart Selects,它具有名为Grouped Selects的功能

自述文件的报价:

  

如果您使用以下型号:

class Country(models.Model):
    continent = models.ForeignKey(Continent)

class Location(models.Model):
    continent = models.ForeignKey(Continent)
    country = models.ForeignKey(Country)
     

您想在HTML选择中按国家/地区对国家/地区进行分组   列表中,您可以使用GroupedForeignKey:

from smart_selects.db_fields import GroupedForeignKey

class Location(models.Model):
    continent = models.ForeignKey(Continent)
    country = GroupedForeignKey(Country, "continent")