Невозможно получить данные внешнего ключа в 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__'