0
我有API端點基於DRF 3.6.3已經響應(< 1秒的響應時間)。但是,當我使用模型方法的源添加新的序列化程序字段後,其執行速度非常慢(超過30秒的響應時間)。如何使用Model的方法加速Django Rest Framework序列化程序的性能?
編輯:所以性能問題,因爲我在該方法上處理的字段是外鍵。
這是我的代碼片段:
class Product(models.Model):
a_name = models.CharField()
b_name = models.ForeignKey(to=OutletProduct)
def all_name(self):
return u'%s %s' % (self.a_name, self.b_name)
串行:
class ProductSerializer(serializers.ModelSerializer):
productid = serializers.ReadOnlyField(source='id')
productallname = serializers.CharField(source='all_name')
class Meta:
model = Product
fields = ('productid', 'productallname')
read_only_fields = ('productallname',)
我只需要做好我的API輸出的小的定製,而且我不認爲重寫to_representation()
是正確的做法這個。
謝謝你的幫助。基於對FK評論
只要確保您打電話的字段不是FK。到目前爲止,我還沒有遇到性能問題,只需添加指向可調用字段的字段即可。 – Linovia
是的,你是對的。性能問題,因爲我在該方法上處理的其中一個字段是FK。我會更新我的問題。 ,現在我把這個字段放在'setup_eager_loading(queryset)'後面,我沒有任何性能問題了。謝謝。 –