Forum
>>
Programmazione Python
>>
Web e Reti
>>
[RISOLTO]: Django Problema Models
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
|
Scritto da LeoX |
2019-06-03 10:50:13 - [RISOLTO]: Django Problema Models
|
|
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 --- |
|
|
Scritto da LeoX |
2019-06-03 11:29:05 - [RISOLTO]: Re: Django Problema Models
|
|
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 --- |
Pagina: 1
Esegui il login per scrivere una risposta.
