class Website(models.Model):
name = models.CharField(max_length=100, default=' ')
description = models.TextField(max_length=2000, blank=True)
domain_name = models.URLField(unique=True)
sub_domain =models.CharField(max_length=56, blank=True, default='')
suffix = models.CharField(max_length=56, blank=True, default='')
is_secure = models.BooleanField(null=True)
logo = models.CharField(max_length=256, default="placeholder.png")
type = models.CharField(choices=WEBSITE_TYPES, default='O', max_length=15)
def __str__(self):
return self.name
def validate_and_split_domain(self):
domain = self.domain_name.lower() # make all lower case because django isn't case sensitive
values = list(tldextract.extract(domain))
self.sub_domain, self.domain_name, self.suffix = values[0], values[1], values[2]
def save(self, *args, **kwargs):
Website.validate_and_split_domain()
super(Website, self).save(*args, **kwargs)
Check out urllib.parse.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
django-users...@googlegroups.com.
To post to this group, send email to
django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/94d5ffbb-8975-471a-b9bb-30870e893ee8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To post to this group, send email to djang...@googlegroups.com.
You’re converting an object (ExtractResult) into a list. That’s just weird.
ext = tldextract.extract(domain)
self.sub_domain = ext.subdomain
self.domain = ext.domain
self.suffix = ext.suffix
Saying that, I would rather use the built-in, Pythonic way of parsing URLs.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/b15fe16b-4eef-4514-a51c-5442a9aca028%40googlegroups.com.