я в настоящее время есть несколько моделей, созданных, как это:Как переключить направление Django OneToOneField?
from django.db import models
class Child(models.Model):
child_name = models.CharField(max_length=200)
class Parent(models.Model):
parent_name = models.CharField(max_length=200)
child = models.OneToOneField(Child, null=True, blank=True)
К сожалению, это не так, потому что я хочу удалить на родителя каскаде ребенка, а не наоборот, так что я действительно должен иметь они создали так:
class Parent(models.Model):
parent_name = models.CharField(max_length=200)
class Child(models.Model):
child_name = models.CharField(max_length=200)
child = models.OneToOneField(Parent)
Если предположить, что я в настоящее время нет каких-либо детей-сирот, как я могу настроить миграцию Джанго таким образом, что мои данные остаются нетронутыми? Я использую базу данных Postgres, если это имеет значение.
Спасибо, что в значительной степени сработало. Единственный улов заключается в том, что 'Parent' ссылается на' Child' до 'Child', поэтому мне пришлось ссылаться на него как на строку:' child = models.OneToOneField ('Child', null = True, blank = True, related_name == '+') '. По какой-то причине мне все еще не удается переименовать поля обратно в исходные значения, а также удалить «null = True», но я могу обойти это, так что пока это достаточно хорошо. – clwainwright
Хорошая точка, использующая строку для ''Child'', я исправил пример выше. Удаление «null = True» из нового поля должно работать, если вы сначала заполнили все значения. – Alasdair