J'ai une forme de modèle très simple, mais pour une raison quelconque, le code ne syncdb et renvoie une erreur: AttributeError: objet « module » n'a pas d'attributmodèle django forme
le code « CharField » est la suivante (dans mon models.py):
from django.db import models
from django.forms import ModelForm, Textarea, forms
from django.forms.fields import DateField, ChoiceField, MultipleChoiceField
class SubmitJobDTP(models.Model):
SERVICE_CHOICES = (
('blog', (
('DTP1', 'cccccccccccccccccc: GBP 65.00'),
('DTP2', 'vvvvvvvvvvvvvvvvvv: GBP 110.00'),
('DTP3', 'bbbbbbbbbbbbbbbbbb: GBP 175.00'))
)
)
package = models.CharField(max_length=5, choices=SERVICE_CHOICES)
firstname = models.CharField(max_length=25)
lastname = models.CharField(max_length=25)
contact_number = models.CharField(max_length=25)
email_address = models.EmailField()
attachment_1 = models.FileField(upload_to='uploadir')
attachment_2 = models.FileField(upload_to='uploadir')
attachment_3 = models.FileField(upload_to='uploadir')
attachment_4 = models.FileField(upload_to='uploadir')
attachment_5 = models.FileField(upload_to='uploadir')
comments = models.CharField(max_length=150)
class SubmitJobForm(ModelForm):
attachment_1 = forms.FileField(label='Attach file 1',required=False)
attachment_2 = forms.FileField(label='Attach file 2',required=False)
attachment_3 = forms.FileField(label='Attach file 3',required=False)
attachment_4 = forms.FileField(label='Attach file 4',required=False)
attachment_5 = forms.FileField(label='Attach file 5',required=False)
package = forms.CharField(required=False)
firstname = forms.CharField(required=False)
lastname = forms.CharField(required=False)
contact_number = forms.IntegerField(required=False)
email_address = forms.EmailField(required=False)
class Meta:
model = SubmitJobDTP
fields = ('package', 'first name', 'last name', 'contact_number',
'email_address', 'comments', 'attachment_1', 'attachment_2',
'attachment_3', 'attachment_4', 'attachment_5')
Un code dpasted est: http://dpaste.com/607823/
Je me demande ce que le problème pourrait être: le FileField correctement de la ModelForm syncdb, mais les autres domaines: Charfield, IntegerField et EmailField ne semble pas fonctionner. J'ai lu les docs de django sur la forme de modèle et je ne peux pas sembler trouver n'importe quoi particulièrement lié à cette erreur.
Toutes les suggestions seraient beaucoup apperciated.
Je suggère lecture.Jusqu'à (https://docs.djangoproject.com/en/dev/ref/django-admin/#syncdb) sur ce 'syncdb' le fait - il ne touche pas les classes' ModelForm', il crée des tables définies par les sous-classes 'django.db.models.Model'. Essayez d'exécuter './manage.py shell' ou toute autre commande de gestion et vous verrez que vous avez une erreur de syntaxe d'importation dans votre code,' depuis django.forms import ModelForm, Textarea, forms' –
@James, un mot sur comment vous utilisez des formulaires. Un ModelForm est conçu pour minimiser la quantité de code personnalisé que vous devez écrire. En déclarant chaque champ qui existe déjà dans le modèle, vous créez effectivement un formulaire standard. En savoir plus sur ModelForms, et économisez du temps et des bugs. –