Используя django, как мне создать экземпляр объекта прокси из экземпляра объекта суперкласса?

Меня все еще немного смущает отношение моделей Proxy к их суперклассам в django. Теперь у меня вопрос: как мне получить экземпляр модели Proxy из уже полученного экземпляра суперкласса?

Итак, допустим, у меня есть:

class Animal(models.Model):
   type = models.CharField(max_length=20)
   name = models.CharField(max_length=40)

class Dog(Animal):  
   class Meta:
       proxy = True

   def make_noise(self):  
       print "Woof Woof"  

Class Cat(Animal):  
   class Meta:
       proxy = True

   def make_noise(self):  
       print "Meow Meow"

animals = Animal.objects.all()
for animal in animals:
   if (animal.type == "cat"):
      animal_proxy = # make me a cat
   elif (animal.type == "dog"):
      animal_proxy = # make me a dog
   animal_proxy.make_noise()

ОК. Итак .. Что входит в "# сделай меня котом", который не требует обратного запроса к базе данных, например:

animal_proxy = Cat.objects.get(id=animal.id)

Есть ли простой способ создать экземпляр Cat из экземпляра Animal, который, как я знаю, кот?

5
задан Bubba Raskin 13 October 2010 в 05:03
поделиться