Hi all,
I've come across something which might possibly be a Django bug, but I wanted to raise it here first in case I'm missing something, or this is expected behaviour.
There's a fuller explanation and easily runnable example here:
https://github.com/gimbo/django-ugettext_lazy_migrations
In short, given the following model (note the empty help_text string),
from django.db import models
from django.utils.translation import ugettext_lazy as _
class X(models.Model):
y = models.CharField(help_text=_(''), max_length=10)
repeated calls of "manage.py makemigrations" will, after the initial migration, produce an infinite series of new migrations, each of which contains an AlterField, but which does nothing. The expected behaviour would be to produce an initial migration and then no further migrations, of course.
The problems goes away if you do any of the following:
* Remove the help_text parameter
* Use a non-empty help_text
* Don't internationalise the help_text value
* Use ugettext instead of ugettext_lazy (which, I understand, you shouldn't)
I've reproduced it on all released 1.8.x Django versions up to 1.8.2, but it doesn't exhibit on any 1.7.x versions I've tried.
I haven't tried any development versions.
Can anyone provide any insight? Is this worth raising a bug over?
Thanks!
-Andy