Это - потенциально - ужасный дизайн. Ваша таблица базы данных должна содержать правильную цену.
Ваше приложение должно теперь делать две вещи. Он должен получить цену по умолчанию откуда-то еще (не в этой таблице), а также получить цену переопределения (из этой таблицы) и объединить две части информации.
Вы не можете просто заставить SQL работать с тем типом сетки, который вы показываете.
Вы не можете легко заставить администратора Django работать с сеткой, как вы показываете. Вы можете попытаться создать шаблон сетки, но он уникален для этого отношения «многие ко многим», поэтому вам также необходимо настроить административные представления Django, чтобы использовать шаблон для одной таблицы «многие ко многим» и использовать обычный шаблон по умолчанию. для всех остальных таблиц.
Для создания сетки вы должны выбрать все ваши страны и продукты. Затем вы должны создать соответствующий список списков. Затем вы можете написать свой собственный шаблон для отображения этого. После того, как у вас будет более 12 стран, сетка станет настолько широкой, что станет практически бесполезной. Но для первых нескольких стран вы можете сделать эту работу.
Для этого вам нужно создать собственный шаблон и собственную функцию просмотра.
Редактировать
«Я открыт для поиска альтернативных подходов (в том числе изменений в структуре модели), а также при условии, что они отвечают требованиям»
Какое требование? Бедный дизайн, где требуется два запроса, чтобы найти цену? Это требуется?
Или очень сложная сетка? Это требуется?
Не ясно, что такое "требование", поэтому невозможно предложить какую-либо альтернативу. Можно только сказать
Конструкция SQL, которая запрашивает базовые и переопределения отдельно, будет медленнее и сложнее.
Проект SQL, который имеет единственное значение, которое загружается из «динамического значения по умолчанию» и может быть изменен (или нет) пользователем, намного, намного проще. Это можно сделать с помощью аргумента initial
. http://docs.djangoproject.com/en/dev/ref/forms/fields/#initial
SQL не может легко превратить несколько строк в решетчатую структуру. Для этого требуется либо сложный SQL (далеко за пределами возможностей ORM), либо обработка Python в функции представления.
Администратор Django вообще не будет создавать сетчатые структуры.