Это первоначальная попытка настроить некоторые базовые функции CRUD для существующей базы данных (на основе SQL Server) для внутреннего приложения Django. Я хотел бы получить совет по определению модели, которая будет поддерживать первичную таблицу, которая содержит список торговых партнеров, а также определяет тип партнера. Партнер может иметь несколько типов. Например, Заказчик также может быть Поставщиком. Затем существует связанная таблица PartnerTypes, которая содержит некоторые дополнительные сведения, но в первую очередь текстовое описание / имя, присвоенное типу партнера.
Когда я использовал команду inspectdb из Django, я получил то, что можно было ожидать, и ForeignKeys были настроены в модели.
Я хотел бы знать, возможно ли включить некоторый тип «фильтрации» в класс модели для использования одной и той же таблицы в разных классах.
Например, создайте класс модели для клиента (например, Client_Partner), а затем еще один для поставщика (например, Supplier_Partner), чтобы они оба указывали на одну и ту же базовую таблицу Partner, и в то же время позволяли создавать отдельную форму для каждого «Тип» партнера?
Во время создания нового клиента тогда TypeID должен быть предварительно заполнен соответствующим TypeId.
Я понимаю, что может быть более уместно не использовать интерфейс администратора, но, поскольку я новичок в Django, и это внутренний проект, я подумал, что можно было бы «начать работу» и заставить некоторые данные идти против набор в основном статических таблиц основных данных.
Заранее спасибо
(Боюсь, я лучше учусь на примерах, поэтому, прочитав много постов и некоторые документы, я все еще чувствую себя потерянным без чего-то, чему я могу следовать в виде базового примера)
Пример таблицы данных (в этом случае компания A является одновременно клиентом и поставщиком)
+--------+-----------------------+---------+
| TypeID | Type | Code |
+--------+-----------------------+---------+
| 0 | Parent | PARENT |
| 1 | Client | CLI |
| 2 | Supplier | SUPP |
+--------+-----------------------+---------+
+-----------+--------------------+--------+-----------+
| PartnerID | name | TypeID | Code |
+-----------+--------------------+--------+-----------+
| 1 | Our Company | 0 | US |
| 10 | Company A | 1 | CA |
| 20 | Company A | 2 | CA |
| 30 | Company B | 2 | CB |
+-----------+--------------------+--------+-----------+
Генерируемая модель Django
class Trading_Partner(models.Model):
partnerid = models.IntegerField(db_column='PartnerID', primary_key=True)
code = models.CharField(db_column='Code', max_length=10, blank=True, null=True)
name = models.CharField(db_column='Name', max_length=150, blank=True, null=True)
typeid = models.ForeignKey('Trading_Partner_Type', models.DO_NOTHING, db_column='TypeID', blank=True, null=True)
lei = models.CharField(db_column='LEI', max_length=20, blank=True, null=True)
class Meta:
managed = False
db_table = 'Partner'
class Trading_Partner_Type(models.Model):
typeid = models.IntegerField(db_column='TypeID', primary_key=True)
type = models.CharField(db_column='Type', max_length=50, blank=True, null=True)
code = models.CharField(db_column='Code', max_length=20, blank=True, null=True)
class Meta:
managed = False
db_table = 'PartnerType'