0

以下にリストされている2つのレガシーモデルがあります。libtype_id > 0の場合、実質的Library.libtype_idにLibraryType への外部キーです。条件が満たされたときに TastyPie でこれを ForeignKey リソースとして表現したいと考えています。

誰かが私を助けることができますか?見ことあるけど同じかどうかわからない?どうもありがとう!!

# models.py
class LibraryType(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=96)

class Library(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=255)
    project = models.ForeignKey('project.Project', db_column='parent')
    libtype_id = models.IntegerField(db_column='libTypeId')

ここに私のapi.pyがあります

class LibraryTypeResource(ModelResource):

    class Meta:
        queryset = LibraryType.objects.all()
        resource_name = 'library_type'

class LibraryResource(ModelResource):
    project = fields.ForeignKey(ProjectResource, 'project')
    libtype = fields.ForeignKey(LibraryTypeResource, 'libtype_id' )

    class Meta:
        queryset = Library.objects.all()
        resource_name = 'library'
        exclude = ['libtype_id']

    def dehydrate_libtype(self, bundle):
        if getattr(bundle.obj, 'libtype_id', None) != 0:
            return LibraryTypeResource.get_detail(id=bundle.obj.libtype_id)

ただし、これを行うと、次のエラーが発生しますhttp://0.0.0.0:8001/api/v1/library/?format=json

"error_message": "'long' object has no attribute 'pk'",
4

1 に答える 1