Querying performance

24 views
Skip to first unread message

dsfqce cwfe

unread,
Mar 23, 2017, 7:23:00 AM3/23/17
to Django users
Is quering Provider model significantly less efficient using this pattern?

class Provider(models.Model):
    def __new__(cls, url, *args, **kwargs):
        if 'google' in url:
            return object.__new__(Google)
        elif 'bing' in url:
            return object.__new__(Bing)

    url = models.CharField(primary_key=True)
    sth = models.CharField()

class Google(Provider):
def do_sth(self):
self.sth = 'sth'
self.save()

class Bing(Provider):
def do_sth(self):
self.sth = 'sth else'
self.save()

spam = Provider.objects.get_or_create(url=spam_url)
spam.__class__
<class '__main__.Google'>

eggs = Provider.objects.get_or_create(url=eggs_url)
spam.__class__
<class '__main__.Yahoo'>
Reply all
Reply to author
Forward
0 new messages