Tengo un modelo de django como este:
class Transaction(models.Model): date = models.DateField() type = models.IntegerField(choices=TRANSACTION_TYPE) distributor = models.ForeignKey(Distributor) second_party = models.CharField(max_length=100) route = models.ForeignKey(DistributionRoute) total_price = models.FloatField() def __str__(self): return self.date + " " + " " +self.total_priceHe intentado crear un formulario a partir del modelo como este:
class transactionForm(forms.ModelForm): class Meta: model = Transaction fields = ['date', 'type', 'distributor', 'second_party', 'route', 'total_price']Pero constantemente recibo el siguiente error:
File "/home/itsd/sts/transaction/forms.py", line 5, in <module> class transactionForm(forms.ModelForm): File "/home/itsd/venv/lib/python3.5/site-packages/django/forms/models.py", line 247, in __new__ opts.field_classes) File "/home/itsd/venv/lib/python3.5/site-packages/django/forms/models.py", line 133, in fields_for_model opts = model._meta AttributeError: 'tuple' object has no attribute '_meta'Estoy atrapado aquí durante horas. ¿Cuáles son las razones de tal problema?
Es demasiado tarde para responder a esto, pero si alguien termina aquí. Quiero compartir, yo también enfrenté el mismo problema. El problema en algún momento para este tipo de error es una comma en algún lugar sin querer. Y como una coma convierte un objeto python en una tupla. Se produce este error.
Sugerencia en línea: -
type = models.IntegerField(choices=TRANSACTION_TYPE) Aunque type no es una palabra clave reservada en Python , el uso de la palabra clave type permitirá type() function en el ámbito de esta clase, por lo que no es una buena práctica.