7

抱歉,如果有人问过这个问题,但我到处找,似乎找不到什么能让它在我的大脑中点击。

ForeignKey如果我有这样的结构,是否可以ManyToManyadmin. 那么,当输入价格信息时,可以搜索汽车制造商、类型和名称,而不是从下拉框中搜索数千辆汽车?

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并搜索了字段,但似乎无法弄清楚。

谢谢布赖恩

4

2 回答 2

9

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

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

盯着 Vehicle 模型,vehicle_name在该字段上进行搜索。

现在manufacturer__manufacturer将搜索制造商。双下划线表示它不是同一个字段object,而是一个foreign key要查找的字段,所以第一个制造商指向制造商型号。第二个制造商告诉它查找制造商字段model

于 2014-12-18T13:59:04.217 回答
1

Django 没有动态表单元素作为开箱即用的首选方法之一,但是有几个项目使用 Javascript 来添加它。

https://github.com/digi604/django-smart-selects是我看到的主要推荐。

无需第三方项目即可使字段可搜索;@wobbily_col 的回答显示了如何做到这一点。

于 2013-05-29T00:48:01.363 回答