3500エントリと外部キーを含むテーブルがあります。
django-rest-frameworkとAjaxでクライアント側の処理データテーブルを使用しています。
ロードには最大10秒かかります。
最初の10エントリ(最初のページの結果)を表示する方法はありますか?ユーザーは、時間がかかりすぎるために私のWebサイトが壊れているとは思わないように、残りのエントリはバックグラウンドで読み込まれますか?
また、ロード速度の最適化を探しています。お時間をいただきありがとうございます。
編集:models.py
class Bibrest51(models.Model):
cadastro_id = models.AutoField(primary_key=True)
autor = models.CharField(db_column='Autor', max_length=255, blank=True, null=True)
tema = models.ForeignKey('BibTema', models.DO_NOTHING, blank=True, null=True)
tipo = models.ForeignKey('Tipo', models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'bibrest51'
@property
def bib_tipo_nome(self):
return self.tipo.tipo_nome
class BibTema(models.Model):
tema_id = models.AutoField(primary_key=True)
tema_nome = models.CharField(max_length=150, blank=True, null=True)
class Meta:
managed = False
db_table = 'tema'
def __str__(self):
return self.tema_nome
serializers.py
class TemaSerializer(serializers.ModelSerializer):
class Meta:
model = BibTema
fields = '__all__'
depth = 1
class TipoSerializer(serializers.ModelSerializer):
class Meta:
model = Tipo
fields = '__all__'
depth= 1
class BibSerializer(serializers.ModelSerializer):
temas = TemaSerializer(read_only=True)
tipos = TipoSerializer(read_only=True)
class Meta:
model = Bibrest51
fields = (
'autor', 'ano', 'titulo', 'referencia','tipos','temas'
)
最適化には、次のものを使用できます。
最初の10エントリ(最初のページの結果)を表示する方法はありますか?ユーザーは、時間がかかりすぎるために私のWebサイトが壊れているとは思わないように、残りのエントリはバックグラウンドで読み込まれますか?
これはページネーションで実装できます。最初の10レコードをリクエストし、レコードの総数が10を超える場合は、バックグラウンドで残りをリクエストします
シリアライザーの場合は、これを試してください。
class TemaSerializer(serializers.ModelSerializer):
class Meta:
model = BibTema
fields = '__all__'
# depth= 1 # delete string
class TipoSerializer(serializers.ModelSerializer):
class Meta:
model = Tipo
fields = '__all__'
# depth= 1 # delete string
class BibSerializer(serializers.ModelSerializer):
temas = TemaSerializer(read_only=True, sourse='tema')
tipos = TipoSerializer(read_only=True, sourse='tipo')
class Meta:
model = Bibrest51
# There are fewer fields in the code you provided,
# so I rely on you for this.
fields = (
'autor', 'ano', 'titulo', 'referencia','tipos','temas'
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加