I'm creating a web page which has two types of users with very similar permissions: Person and Company. The main difference is in their attributes and probably different billing.I've created only one UserProfile for both types of users. What do you think? Is it safe? Should I expect some problems later because of this? The first problem I met is that I can't tell Django that if the user is a person, then username can't be blank and the same with company and company_name.class UserProfile(models.Model):    user = models.OneToOneField(User, related_name='userprofile',on_delete=models.CASCADE)    TYPE_OF_USER_CHOICES = (('company', 'Company'),                            ('person', 'Person'))    type_of_user = models.CharField(max_length=40, choices=TYPE_OF_USER_CHOICES)    IBAN = models.CharField(max_length=80, null=True)    # PERSON    username = models.CharField(max_length=20,blank=True,null=True)    # COMPANY    company_name = models.CharField(max_length=100,blank=True,null=True)    ICO = models.CharField(max_length=30, blank=True, null=True, unique=True,                           help_text=u'Zadajte firemn IO alebo nechajte przdne')    DIC = models.CharField(max_length=30, blank=True, null=True, unique=True,                           help_text=u'Zadajte firemn DI alebo nechajte przdne')    @property    def is_firm(self):        return self.type_of_user == 'company'    @property    def is_person(self):        return self.type_of_user == 'person'    def __str__(self):        if self.is_firm:            return '{} - Company'.format(self.company_name)        else:            return '{} - Person'.format(self.username)
One user profile for company and person
python;mvc;django