我有一个非常简单的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模板?怎么样?请帮我.
试试这个 .
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)