Profilo di LeoX

Nome LeoX
Indirizzo email [email protected]
AvatarAvatar utenti
Messaggi2
  • [RISOLTO]: Re: Django Problema Models
    Forum >> Programmazione Python >> Web e Reti
    Ho risolto,
    in ParcoAutoUtente il return è un oggetto

    > return self.auto

    mentre andrebbe un str:

    > return str(self.auto)




    Grazie ugualmente.


    --- Ultima modifica di LeoX in data 2019-06-03 11:29:20 ---
  • [RISOLTO]: Django Problema Models
    Forum >> Programmazione Python >> Web e Reti
    Ciao a tutti,
    ho creato un models:

    
    from django.db import models
    
    from django.core.validators import URLValidator
    
    from django.contrib.auth.models import User
    
    import datetime
    
    
    class MarcheAuto(models.Model):
    
        marca = models.CharField(max_length=150, unique=True, blank=True, null=True)
    
        logo = models.TextField(blank=True, null=True)
    
    
        class Meta:
    
            verbose_name = "Marche auto"
    
            verbose_name_plural = "Marche Auto"
    
    
        def __str__(self):
    
            return self.marca
    
    
    tipologia = {1:"Auto", 2:"Moto", 3:"Altro"}   
    
    class ParcoAuto(models.Model):
    
        marca = models.CharField(max_length=150, blank=True, null=True)
    
        modello = models.CharField(max_length=150, blank=True, null=True)
    
        tipo = models.IntegerField(blank=True, null=True)
    
    
        class Meta:
    
            verbose_name = "Modelli Auto"
    
            verbose_name_plural = "Modelli Auto"
    
    
        def __str__(self):
    
            return f'{self.marca} - {self.modello} ({tipologia[self.tipo]})'
    
    
    ANNO_CHOICES = []
    
    for r in range(1930, (datetime.datetime.now().year+1)):
    
        ANNO_CHOICES.append((r,r))
    
    class ParcoAutoUtente(models.Model):
    
        utente = models.ForeignKey(User, on_delete = models.CASCADE)
    
        auto = models.ForeignKey(ParcoAuto, on_delete = models.CASCADE)
    
        anno = models.IntegerField(choices=ANNO_CHOICES, default=datetime.datetime.now().year)
    
        cilindrata = models.IntegerField(blank=True, null=True)
    
        alimentazione = models.CharField(max_length=40, blank=True, null=True)
    
        kw = models.IntegerField(blank=True, null=True)
    
        classe_euro = models.CharField(max_length=5, blank=True, null=True)
    
        emissioni_co2 = models.CharField(max_length=20, blank=True, null=True)
    
        consumo_km = models.CharField(max_length=20, blank=True, null=True)
    
        colore = models.CharField(max_length=50, blank=True, null=True)
    
        porte = models.IntegerField(blank=True, null=True)
    
        posti = models.IntegerField(blank=True, null=True)
    
        massa = models.CharField(max_length=5, blank=True, null=True)
    
        larghezza = models.IntegerField(blank=True, null=True)
    
        lunghezza = models.IntegerField(blank=True, null=True)
    
        altezza = models.IntegerField(blank=True, null=True)
    
        ultima_revisione = models.DateField(blank=True, null=True)
    
        descrizione = models.TextField(blank=True, null=True)
    
        prezzo = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
    
    
        class Meta:
    
            verbose_name = "Parco auto utente"
    
            verbose_name_plural = "Parco Auto utente"
    
    
        def __str__(self):
    
            return self.auto
    
    
    class ImmaginiAuto(models.Model):
    
        auto = models.ForeignKey(ParcoAutoUtente, on_delete = models.CASCADE)
    
        immagine = models.CharField(max_length=255, blank=True, null=True)
    
        video = models.CharField(max_length=255, validators=[URLValidator()])
    
    
        class Meta:
    
            verbose_name = "Immagini Auto"
    
            verbose_name_plural = "Immagini Auto"
    
    
        def __str__(self):
    
            return self.immagine
    
    
    Effettuato il makemigration e migration... tutto ok.




    Ho anche creato l'admin.py (credo che il codice dell'admin non sia importante, se dovesse servire lo inserirò).

    Funziona tutto regolarmente, eccetto che per l'inserimento di un "ParcoAutoUtente".

    Ritorna questo errore:

    TypeError: __str__ returned non-string (type ParcoAuto)




    Cosa significa? :dont-know:

    In genere dovrebbe ritornare un errore di tipo str, ma type ParcoAuto?




    Qualcuno saprebbe aiutarmi.

    Vi ringrazio e vi saluto.


    --- Ultima modifica di LeoX in data 2019-06-03 11:42:08 ---