Reputation: 1388
When using makemigrations
in Django, I notice that it generates migrations even for fields that did not changed. What is the reason for this?
Here is the Model that Django generates a new migration for every time I run makemigrations
class Announcement(OJModel):
owner = models.ForeignKey(
"user.User",
verbose_name=_("Announcement Owner"),
on_delete=models.CASCADE,
related_name="owner_announcements",
null=True,
blank=True,
)
title = models.CharField(max_length=300, default="", verbose_name=_("Title"))
description = models.TextField(
max_length=3000, default="", verbose_name=_("Description")
)
estate = models.OneToOneField(
"announcement.Estate",
on_delete=models.CASCADE,
verbose_name=_("Estate"),
null=True,
)
Script generated by makemigrations
:
class Migration(migrations.Migration):
dependencies = [
("announcement", "0072_auto_20181218_1256"),
]
operations = [
migrations.AlterField(
model_name="announcement",
name="estate",
field=models.OneToOneField(
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="announcement.Estate",
verbose_name="Estate",
),
),
]
Upvotes: 1
Views: 849
Reputation: 116
Write like this in models.py:
from django.db import models
class Announcement(models.Model):
owner = models.ForeignKey('user.User', verbose_name=_('Announcement Owner'), on_delete=models.CASCADE,related_name='owner_announcements', null=True, blank=True)
title = models.CharField(max_length=300, default='', verbose_name=_('Title'))
description = models.TextField(max_length=3000, default='',verbose_name=_('Description'))
estate = models.OneToOneField('announcement.Estate', on_delete=models.CASCADE,verbose_name=_('Estate'), null=True)
def __str__(self):
return self.title
In admin.py write like this:
from django.contrib import admin
from .models import Announcement
# Register your models here.
admin.site.register(Announcement)
Save the files and now delete the old migration from migration folder!
Now run these in the command line in manage.py directory:
python manage.py makemigrations
Then this:
python manage.py migrate
It's all done!
Upvotes: 1