Depuis la mise à niveau vers django 1.8 J'ai rencontré des problèmes avec les champs datetime de mes modèles qui ne migrent pas correctement.Les champs datetime ne migrent pas avec django 1.8
je voyais ce message à plusieurs reprises:
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
je lance makemigrations et je reçois ceci:
operations = [
migrations.AlterField(
model_name='profile',
name='date_of_hire',
field=models.DateField(default=datetime.date(2016, 6, 5)),
),
]
Alors je cours migrate manage.py puis-je obtenir:
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
Je lance donc de nouveau les migrations et j'obtiens une nouvelle migration identique à celle ci-dessus.
voici mon champ de problème:
date_of_hire = models.DateField(default=datetime.date.today())
En regardant la migration, je peux voir que la date est définie de manière explicite à obtenir une date fixe. Alors maintenant, si je change mon champ à ceci:
date_of_hire = models.DateField(auto_now_add=True)
ou ceci:
date_of_hire = models.DateTimeField(auto_now_add=True)
Je reçois l'erreur ci-dessous lorsque vous essayez d'exécuter makemigrations ou démarrer mon serveur:
File "/urls.py", line 13, in <module>
import profiles.views as profile_views
File "/profiles/views.py", line 9, in <module>
from profiles.forms import CompanyProfileForm
File "/profiles/forms.py", line 19, in <module>
class ProfileForm(ModelForm):
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py", line 295, in __new__
raise FieldError(message)
django.core.exceptions.FieldError: Unknown field(s) (date_of_hire) specified for Profile
Si Je commente ce champ dans les champs de formulaires.py liste tout sauf le pour le travail de formulaire. Je peux faire des migrations et les appliquer, lancer le serveur, etcetera, mais dès que je décommente ce champ l'application prend une merde. Je suis donc à une perte ...