Я использую устаревшие таблицы БД, которые я не контролирую.
Таблица A имеет поле идентификатора auto_gen, как показано ниже: Таблица DRAWER (одна сторона), таблица FOLDER (много сторон)
class Drawer(models.Model):
id = models.PositiveIntegerField(primary_key=True, db_column='ID')
fld1 = models.CharField(max_length=1000, db_column='FLD1')
fld2 = models.CharField(max_length=1000, db_column='FLD2')
fld3 = models.CharField(max_length=1000, db_column='FLD3')
def __str__(self):
field_values = []
for field in self._meta.get_fields():
field_values.append(str(getattr(self, field.name, '')))
return ' '.join(field_values)
class Meta:
managed = False
db_table = u'"MySchema"."DRAWER"'
class Folder(models.Model):
id = models.PositiveIntegerField(primary_key=True, db_column='ID')
fld1 = models.CharField(max_length=1000, db_column='FLD1')
fld4 = models.CharField(max_length=1000, db_column='FLD4')
fld5 = models.CharField(max_length=1000, db_column='FLD5')
drawer = models.ForeignKey(to=Drawer, related_name='Drawer.fld1+', on_delete=models.CASCADE, db_constraint=False)
def __str__(self):
field_values = []
for field in self._meta.get_fields():
field_values.append(str(getattr(self, field.name, '')))
return ' '.join(field_values)
class Meta:
managed = False
db_table = u'"MySchema"."FOLDER"'
Поля идентификатора числовые c автог. Я пытаюсь использовать модели Djano для установления sh отношения один ко многим между таблицами DRAWER и FOLDER с использованием fld1 . fld1 уникален в Drawer, а многие в Folder. Я сделал это в Java, но до сих пор кажется, что Django этого не допустит. Django, кажется, ожидает, что одна сторона должна быть ПК? Я понимаю, что Django имеет много к одному (вместо одного ко многим) и следовал документации ... но это не работает. Пожалуйста, сообщите, если есть способ сделать это в Django каркасе моделей.
Конечный результат, который я ищу в сервисе отдыха, - что-то вроде ниже, что я получаю из текущего JAVA Служба восстановления данных Hibernate:
{
"ID": 1234,
"FLD1": "xxxxxxxx",
"FLD2": "wertt",
"FLD3": "rtyuio",
folder:[
{
"ID": 5645,
"FLD1": "xxxxxxxx",
"FLD4": "zzzzzzz",
"FLD5": "cccccccc",
},
{
"ID": 5645,
"FLD1": "xxxxxxxx",
"FLD4": "rrrrrrr",
"FLD5": "cccccuuuuuuuuuuccc",
}
.
.
]
Я ценю любую помощь, которую вы можете предоставить.