Как я могу добавить изменяемое "подполе" к ModelField в django?

Я пытаюсь создать своего рода "подполе" для CharField в django, но я не уверен (а) возможно ли это вообще и (б) как добиться успеха, если это действительно возможно.

Допустим, мне нужна модель для Tools. Они будут иметь, например, поле для длинного_имени, короткого_имени, возможно, ForeignKey для реализации различных отделов. Один из этих инструментов я хотел бы сделать ссылкой, а упомянутое "подполе" - полем URLField с ссылкой на веб-страницу.

Теперь я могу создать несколько записей ссылок со связанным URL, но я бы предпочел иметь только один инструмент под названием "Ссылка" с прикрепленным изменяющимся URL. Является ли это случаем и для ForeignKey? Имеет ли смысл иметь модель только с одним полем (ну, двумя, если считать pkid) в ней?

Или я совсем сбился с пути? Любые рекомендации будут приняты с благодарностью.

Если я правильно вас понял, вы хотите иметь несколько ссылок, которые могут быть присоединены к модели Tool, поэтому вместо одной URLField у вас будет отношение "многие к одному" с моделью Link:

class ToolLink(models.Model):
   url = models.URLField(...

class Tool(models.Model):
   links = models.ForeignKey(ToolLink, ...

Проблема в том, что вы хотите, чтобы только один конкретный инструмент мог хранить ссылки. Вы можете создать базовую модель 'Tool', которая затем будет иметь несколько различных типов инструментов, таких как 'StandardTool', 'LinkTool' и т.д. или установить некоторую логику, которая отслеживает, имеет ли инструмент ссылки или нет (или если другой инструмент уже имеет ссылки) и допустимо ли создание ссылок.

Вернуться на верх