当前位置:  开发笔记 > 编程语言 > 正文

Django Admin中的ForeignKey或ManyToMany字段搜索

如何解决《DjangoAdmin中的ForeignKey或ManyToMany字段搜索》经验,为你挑选了1个好方法。

对不起,如果有人问过,但我到处都看,似乎无法找到什么会让它点击我的大脑.

如果我有这样的结构,是否有可能使ForeignKeyManyToMany田间关系可以搜索到admin.因此,当要输入价格信息时,车辆制造商可以搜索类型和名称,而不是从下拉框搜索数千辆车辆?

class Manufacturer(models.Model):
    manufacturer = models.CharField(max_length=100)

class VehicleType(models.Model):
    vehicle_type = models.CharField(max_length=100)

class VehicleInfo(models.Model):
    manufacturer = models.ForeignKey('Manufacturer')
    vehicle_type = models.ForeignKey('VehicleType')
    vehicle_name = models.CharField(max_length=200)

class RandomWebsitePriceInfo(models.Model):
    vehicle_info = models.ManyToManyField('VehicleInfo')
    website_price = models.FloatField()

我理想的做法是通过下拉框跟踪关系,就像我选择制造商的地方一样,然后在车辆类型框中将是该制造商可用的车辆,然后在车辆信息框中将是所有由该制造商生产的那种类型的车辆.

或者只是让车辆信息可搜索,所以如果我放入车辆模型它会出现.

我已经查看raw_input并搜索字段,但似乎无法弄明白.

谢谢Brian



1> wobbily_col..:

假设您在VehicleInfo管理页面上,在您的admin.py中,尝试添加:

search_fields = ['vehicle_name' , 'vehicle_type__vehicle_type' , 'manufacturer__manufaturer' ]

使用Vehicle模型进行vehicle_name搜索,搜索该字段.

现在manufacturer__manufacturer将搜索制造商.双下划线表示它不是相同的字段object,而是foreign key查找的字段,因此第一个制造商指向制造商模型.第二个制造商告诉它在那里查找制造商字段model.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有