text: from django.db import models
  from django.contrib.auth import get_user_model
  
  class Chassi(models.Model):
      numero = models.CharField('Chassi', max_length=16, help_text='Informe Máximo 16 caracteres')
  
      class Meta:
          verbose_name = 'Chassi'
          verbose_name_plural = 'Chassis'
  
      def __str__(self):
          return self.numero
  
  
  class Montadora(models.Model):
      nome = models.CharField('Nome', max_length=50)
  
      class Meta:
          verbose_name = 'Montadora'
          verbose_name_plural = 'Montadoras'
  
      def __str__(self):
          return self.nome
  
  def set_default_montadora():
      return Montadora.objects.get_or_create(nome='Padrão')[0]  #(objeto, boolean)
  
  class Carro(models.Model):
      #OneToOne Um chassi apenas um carro
      chassi = models.OneToOneField(Chassi, on_delete=models.CASCADE)
      #OneToMany Um carro apenas uma montadora, mas uma montadora n carros
      montadora = models.ForeignKey(Montadora, on_delete=models.SET(set_default_montadora))
      #ManyToMany 1 carro Muitos motoristas 1 Motorista Muitos Carros
      motoristas = models.ManyToManyField(get_user_model())
      modelo = models.CharField('Modelo', max_length=30, help_text='Informe Máximo 30 caracteres')
      preco = models.DecimalField('Preco', max_digits=8, decimal_places=2)
      class Meta:
          verbose_name = 'Carro'
          verbose_name_plural = 'Carros'
  
      def __str__(self):
          return f'{self.montadora} {self.modelo}'
  