Django为大多数类似汽车提供自我指导课程

时间:2016-07-21 05:35:42

标签: python django python-3.x django-models django-templates

我们说我有一个班级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

我真的希望有人可以提供帮助。非常感谢你。

1 个答案:

答案 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