提问人:Doron_g 提问时间:11/4/2023 更新时间:11/5/2023 访问量:30
没有外键的 Django 管理员自动完成过滤器
django admin autocomplete filter without foreign key
问:
我有这个模型:
class Person(models.Model):
first_name = models.CharField(max_length=50, null=True, blank=True)
last_name = models.CharField(max_length=50, null=True, blank=True)
age = models.PositiveIntegerField(null=True, blank=True)
gender = models.CharField(choices=Gender.choices, null=True, blank=True)
city = models.CharField(max_length=200, null=True, blank=True)
我需要“城市”字段的自动完成过滤器
https://github.com/farhan0581/django-admin-autocomplete-filter 没有完成这项工作
答:
0赞
comiser
11/5/2023
#1
你可以使用 django-autocomplete-light 和 istall 它。
为城市字段创建自定义小组件:
from autocomplete_light.widgets import AutoCompleteWidget
class CityAutocompleteWidget(AutoCompleteWidget):
def get_model_objects(self, query):
return City.objects.filter(name__icontains=query)
更新 Person 模型以使用新的小组件:
class Person(models.Model):
first_name = models.CharField(max_length=50, null=True, blank=True)
last_name = models.CharField(max_length=50, null=True, blank=True)
age = models.PositiveIntegerField(null=True, blank=True)
gender = models.CharField(choices=Gender.choices, null=True, blank=True)
city = models.CharField(max_length=200, null=True, blank=True, widget=CityAutocompleteWidget)
评论
0赞
Doron_g
11/5/2023
我没有城市模型,只有个人模型中的字段“城市”
0赞
comiser
11/6/2023
我知道你可以在城市字段中添加一个自定义小部件来自动完成它,首先安装 django-autocomplete-light 包
评论