У меня есть модели, которые выглядят так (упрощенно, конечно):
class Product(models.Model):
product_code = Charfield(max_length=30)
class Change(models.Model):
product = ForeignKey(Product)
Моя проблема в том, что это не сработает, потому что Продукты удаляются, но мне нужна ссылка в Изменении, чтобы остаться (использование on.delete, чтобы установить его в null, не вариант). Поэтому я переключил его на:
class Change(models.Model):
product = CharField(max_length=30)
Но теперь я потерял преимущества поля «Внешний ключ» при запросах. Когда я запрашиваю изменение, я не могу выбрать «продукты» или выполнить какое-либо другое действие типа соединения, не углубляясь в предложения типа extra
.
Итак, мой вопрос, есть ли какой-нибудь хороший способ съесть мой пирог и съесть его тоже? Чтобы можно было легко выйти на поле, но разве это не ФК? Похоже, что, кроме типа FK, должен быть какой-то способ сказать, что поля связаны между собой. Возможно через менеджера?