tech_lead = models.ForeignKey(User, related_name='tech_lead')
нарушает целостность, потому что ваша база данных уже заполнена Application
экземплярами. Если вы хотите добавить ненулевой FK в вашу схему, вам следует указать значение по умолчанию. В противном случае, если вы не можете предоставить значение по умолчанию, вам следует рассмотреть возможность предоставления tech_lead
значения NULL, т.е.:
tech_lead = models.ForeignKey(User, related_name='tech_lead', null=True)
, затем с помощью перенос данных для заполнения поля нужными значениями:
from django.db import migrations
def populate_tech_lead(apps, schema_editor):
Application = apps.get_model('yourappname', 'Application')
for application in Application.objects.all():
application.tech_lead = application.assessment_owner
application.save()
class Migration(migrations.Migration):
dependencies = [
('yourappname', '0001_initial'),
]
operations = [
migrations.RunPython(populate_tech_lead),
]
и затем удаление null=True
из поля:
tech_lead = models.ForeignKey(User, related_name='tech_lead')