我们说我有一个班级Car
,其中有许多字段描述了它的功能。我使用{{ object.price }}
等在我的html中调用并显示这些功能。
使用最近邻算法,我已经为每辆车计算了大多数类似汽车的列表,并且希望能够显示例如五辆最相似汽车的特征。
我想在班上most_similar_cars
使用哪种字段?请注意,这种关系不对称。即虽然汽车B可能是汽车A的最近邻居,但汽车A不一定是汽车B的最近邻居。我还需要能够区分最相似,第二最相似,第三等等。
models.py
from django.db import models
# Create your models here.
class Car(models.Model):
"""A model of a bureau."""
car_model = models.CharField(max_length = 50)
price = models.IntegerField(default=1)
most_similar = ?
def __str__(self):
return self.car_model
我真的希望有人可以提供帮助。非常感谢你。
答案 0 :(得分:2)
您可能希望使用自定义关系模型的不对称M2M来订购最近的汽车。 在你的情况下:
mHelper.queryInventoryAsync(mGotInventoryListener);
然后你可以添加这样的关系:
class Car(models.Model):
"""A model of a bureau."""
car_model = models.CharField(max_length = 50)
price = models.IntegerField(default=1)
most_similar = models.ManyToManyField('self', symmetrical=False, through='CarRelation')
def __str__(self):
return self.car_model
class CarRelation(models.Model):
car = models.ForeignKey(Car)
close_car = models.ForeignKey(Car, related_name='nearest_cars')
order = models.PositiveIntegerField()
class Meta:
ordering = ('order',)
Django docs中的更多信息:https://docs.djangoproject.com/en/1.9/ref/models/fields/#django.db.models.ManyToManyField.symmetrical