基类django序列化程序缺少字段

基类django序列化程序缺少字段,django,serialization,Django,Serialization,我有几门课: class Correspondent(models.Model): title = models.CharField(max_length=60) class Subject(models.Model): title = models.CharField(max_length=60) class Letter(models.Model): correspondent = models.ForeignKey(Correspondent, on_

我有几门课:

class Correspondent(models.Model):
    title = models.CharField(max_length=60)

class Subject(models.Model):
    title = models.CharField(max_length=60)

class Letter(models.Model):
    correspondent = models.ForeignKey(Correspondent, 
    on_delete=models.SET_NULL, null=True)
    subject = models.ForeignKey(Subject, on_delete=models.SET_NULL, null=True)
    description = models.TextField(max_length=600, blank=True)
    case_number = models.CharField(max_length=100, blank=True)
    inventory_number = models.CharField(max_length=100, blank=True)
    note = models.TextField(max_length=300, blank=True)
    user = models.ForeignKey(User, editable=False, on_delete=models.SET_NULL, null=True)
    date = models.DateField(default=datetime.date.today)
    date_creation = models.DateTimeField(auto_now_add=True)

class IncomingLetter(Letter):
    response_to = models.ForeignKey('OutgoingLetter', on_delete=models.SET_NULL, null=True, blank=True)
    outgoing_number = models.CharField(max_length=120, blank=True)
    incoming_number = models.CharField(max_length=120, blank=True)


class OutgoingLetter(Letter):
    response_to = models.ForeignKey(IncomingLetter, on_delete=models.SET_NULL, null=True, blank=True)
    outgoing_number = models.CharField(max_length=120, blank=True)
在一个视图中,我尝试使用序列化的B类实例发送json:

from django.http import JsonResponse
from django.core import serializers
from .models import IncomingLetter
def index(request):
   ....
   some_data = IncomingLetter.objects.all()
   serialized_data = serializers.serialize('json', some_data)
   return JsonResponse(json.dumps(serialized_data), safe=False)
而响应遗漏了json中的所有
字母
字段。有没有办法不手动序列化它?
serialized_data=={“model”:“letters.incomingletter”,“pk”:4,“fields”:{“response_to”:3,“outing_number”:“12312321”,“innoming_number”:“123123”}

已解决#(不确定) 我编写了简单序列化程序,但不确定这是最干净的方式(许多不必要的字段,但很容易清理):


您能否更新您的问题以显示完整的导入;序列化程序定义(如果正在使用)、完整字段定义和其他详细信息。@ShubhoShaha它是一个常见的django.core序列化程序。编辑问题。也许我可以覆盖django core序列化程序?@rtindru更新。
Letter
IncomingLetter
OutgoingLetter
都是具体的模型,还是
Letter
是抽象模型?您能否共享问题中的
序列化的_数据
repr?你也探索过DRF或Tastypie吗?它们为您提供了全面的、高度可配置的序列化程序和APIViews,使您能够以更结构化和可测试的方式进行同样的操作。
class LetterSerializer:
    def __init__(self):
        self.serialized_data = {}

    def serialize(self, data):
        for idx, instance in enumerate(data):
            serialized_instance_data = {}
            for key, value in instance.__dict__.items():
                serialized_instance_data[key] = str(value)
            self.serialized_data[idx] = serialized_instance_data

        return self.serialized_data