Django 字段由其他字段组成

问题描述 投票:0回答:1

enter image description here

class Car(models.Model):
    stockid = models.AutoField(primary_key=True)

    galleryIndex = models.IntegerField()
    title = make + model + year

    make = models.CharField(max_length=50)
    model = models.CharField(max_length=200)
    year = models.IntegerField()
    price = models.IntegerField()

    location = models.CharField(max_length=50)
    mileage = models.IntegerField()
    transmission = models.BooleanField(default=False)

    engine = models.CharField(max_length=200)
    registration = models.CharField(max_length=200)
    body = models.CharField(max_length=200)
    color = models.CharField(max_length=200)

    sellerComments = models.CharField(max_length=300)

我想实现标题字段,

实际上我需要这个来查找汽车型号!

就像在查询中一样,我将发送一个字符串,例如:“MAKE MODEL” 用户可以发送品牌或型号,但无法弄清楚,因为只有一个搜索框! 无论如何,如果我有一个“标题字段”,我可以用它来查询数据

这样“标题包含查询字符串!”这是我能想到的唯一逻辑!

任何帮助都会很棒!

根据字符串查询品牌和型号!

python django logic
1个回答
0
投票

您想要的可以通过重写当前类上的 save 方法来简单地实现,因此您将 title 定义为普通字符字段,直到保存对象为止从您想要的其他字段生成其值。

因此,在您的示例中,您的保存方法可能如下所示:

def save(self, *args, **kwargs):
    # generate title field from other fields on each model creation/edit
    this.title = f"{self.make} {self.model} {self.year}"
     
    # run default Django implementation for save method 
    super().save(*args, **kwargs)

模型上的标题字段可能如下所示:

title = models.CharField(max_length=256)
© www.soinside.com 2019 - 2024. All rights reserved.