Django Использовать строку как ForeignKey - PullRequest
0 голосов
/ 21 июня 2020

У меня есть быстрый концептуальный вопрос, который я хотел бы решить. У меня есть модель, которая при сохранении экземпляра этой модели сохраняет идентификатор как md5 ha sh (например, '11db608cba69c0a09b4d5abde2553b56').

Сохранение этой модели работает нормально, но теперь я пытаюсь сохранить дополнительную информацию, создав новую модель, которая ссылается на эту модель как на внешний ключ. После сохранения этой дополнительной модели я получаю следующую ошибку:

invalid literal for int() with base 10: '11db608cba69c0a09b4d5abde2553b56'.

Выполнив поиск, я нашел красивую публикацию в стеке, которая отвечает на то, что, по моему мнению, происходит. Он сказал, что по умолчанию поле ForeignKey имеет целочисленный тип. Следовательно, любое значение, на которое оно ссылается, должно быть целым числом.

Я хотел бы иметь возможность определить модель, которая использует внешний ключ на основе str (или что-нибудь, что позволит ему, кроме md5 ha sh). Возможно ли такое решение? Единственное, что я мог придумать, - это создать целое число на основе md5 и использовать его в качестве ссылки, но это кажется ненужным шагом. Я также нашел несколько других сообщений, в которых упоминается GenericForeignKey. У меня возникли некоторые проблемы с осознанием этого, но похоже, что я могу использовать этот тип вместо ForeignKey.

Что вы думаете по этому поводу, и спасибо за помощь!

...