我需要为我的Django应用程序实现全文搜索,将MySQL作为后端运行.
假设我的模型如下:
class MyItem(models.Model):
title = models.CharField()
short_description = models.TextField()
description = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我想首先在标题中找到搜索词出现的结果,然后在short_description和结尾的描述字段中得到结果.如果我不必使用额外的模块/应用程序完成此任务,我会更高兴.
假设我有以下 ORM 类(删除字段以简化):
class Animal(models.Model):
say = "?"
def say_something(self):
return self.say
class Cat(Animal):
self.say = "I'm a cat: miaow"
class Dog(Animal):
self.say = "I'm a dog: wuff"
class Animals(models.Model):
my_zoo = models.ManyToManyField("Animal")
Run Code Online (Sandbox Code Playgroud)
当我向动物园添加一些动物时:
cat = Cat()
cat.save()
dog = Dog()
dog.save()
animals.my_zoo.add(cat)
animals.my_zoo.add(dog)
for animal in animals.my_zoo.all():
print animal.say_something()
Run Code Online (Sandbox Code Playgroud)
...我希望得到以下结果:
我是猫:喵,我是狗:wuff
但是相反,我所拥有的只是一般 Animal 对象的实例,除了“?”之外什么都不能说。
从db中取出对象时,如何实现真正的对象继承和后来的多态?