过滤django admin中点亮的下拉列表中的字段

 ColinYinbaohua 发布于 2023-01-29 23:30

我有一个非常简单的django模型:

class Car(models.Model):
   carname = models.CharField(max_length=100)
   carmodel = models.CharField(max_length=100)
   carcountry = models.CharField(max_length=100)
   caryear = models.CharField(max_length=100)
       cardesc = models.TextField()

以及显示所有记录的admin.py:

class UserForm(forms.ModelForm):
    cardesc = forms.CharField(widget=forms.Textarea(attrs={'cols': 120, 'rows': 20}))

class Meta:
    model = Cars


  class ModelAdmin(admin.ModelAdmin ):
     form = UserForm



  admin.site.register(Cars,ModelAdmin)

它工作正常.现在,我的问题是:我想要一个下拉列表,我可以选择汽车模型,然后根据我的选择过滤我的结果...

我怎么能这样做?我要编辑Admin.py文件?Django有内置功能吗?或者我必须创建一个HTML模板?怎么样?请帮我.

1 个回答
  • 试试这个 .

    class CustomForm(forms.ModelForm):
    
        class Meta:
            model = Cars
    
        cars_list = Cars.objects.values_list('carmodel', flat=True).order_by('carmodel').distinct()
        choice_list = []
        for car in cars_list:
            choice_list.append((car,car,)) 
        CAR_CHOICES = choice_list
    
        #Used 'ChoiceField' as you want dropdown list for carmodels stored in text fields 
        carmodel = forms.ChoiceField(widget=forms.Select, choices=CAR_CHOICES)
    
    class CarsModelAdmin(model.ModelAdmin):
        form = CustomForm
        list_filter = ['carmodel']
    
    admin.site.register(Cars,CarsModelAdmin)
    

    2023-01-29 23:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有