Невозможно получить данные внешнего ключа в Django rest framework datatables

Моя проблема заключается в том, что когда я добавляю внешний ключ к моей таблице, я сталкиваюсь с такими проблемами, как не получение значения и не фильтрация таблицы Ниже я делюсь моделями и сериализаторами.

class Foo(models.Model):
    name = models.CharField(max_length=77, unique=True)
    phone = models.CharField(max_length=40, null=True, blank=True)
    email = models.CharField(max_length=80, null=True, blank=True)
    date_created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f"{self.name}"

class Process(models.Model):
    foo = models.ForeignKey(Foo, on_delete=models.CASCADE)

class ProcessSerializer(serializers.ModelSerializer):
    class Meta:
        model = Process
        fields = '__all__'

<th data-data="foo.name" data-name="foo.name">Kisi</th>

Я добавляю внешний ключ к моей модели, затем использую пакет djangorestframework-datatables и не могу получить атрибут name, я просто получаю id типа "1" для внешнего ключа, а после добавления .name к модели foo в data-data я не могу получить никакого значения. Я получаю следующую ошибку

DataTables warning: table id=processes - Requested unknown parameter 'foo.name' for row 0, column 0. For more information about this error, please see http://datatables.net/tn/4

Я не вижу проблем в коде, любая помощь будет принята с благодарностью.

Полагаю, что вы ищете Вложенные отношения

Вам необходимо включить класс FooSerializer и обновить ProcessSerializer


...

# Include this class
class FooSerializer(serializers.ModelSerializer):

    class Meta:
        model = Foo
        fields = '__all__'

class ProcessSerializer(serializers.ModelSerializer):
    foo = FooSerializer(many=true, read_only=True) # serialize the Foo Object.

    class Meta:
        model = Process
        fields = '__all__'
Вернуться на верх