Запуск Serializers.py дает желаемый результат. Проблема в классе ActivitiesSerializer, мне пришлось переопределить поле assay, чтобы переименовать его в assays, чтобы оно соответствовало имени таблицы db_table. Я не могу делать это вручную для каждого случая. Есть ли способ переопределить ModelSerializer по умолчанию, чтобы использовать имя db_table, а не имя поля внешнего ключа?
model.py:
class Activities(models.Model):
activity_id = models.BigIntegerField(primary_key=True)
assay = models.ForeignKey('Assays', models.DO_NOTHING)
class Meta:
managed = False
db_table = 'activities'
class Assays(models.Model):
assay_id = models.BigIntegerField(primary_key=True)
doc = models.ForeignKey('Docs', models.DO_NOTHING)
class Meta:
managed = False
db_table = 'assays'
Serializers.py
class AssaysSerializer(serializers.ModelSerializer):
class Meta:
model = Assays
fields = '__all__'
depth = 0
class ActivitiesSerializer(serializers.ModelSerializer):
assays = AssaysSerializer(source='assay')
class Meta:
model = Activities
fields = '__all__'
depth = 0
ActivitiesObjectA = ActivitiesSerializer(Activities.objects.get(activity_id=17126237))
ActivitiesObjectA_JSON = JSONRenderer().render(ActivitiesObjectA.data)
print(ActivitiesObjectA_JSON)