LeoX
Profilo di
Nome | LeoX |
---|---|
Indirizzo email | leo.lotito@gmail.com |
Avatar | |
Messaggi | 2 |
-
- 2019-06-03 11:29:05
- [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 ---
-
- 2019-06-03 10:50:13
- [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?
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 ---