![](/img/trans.png)
[英]How can I apply custom filters in views for django rest framework serialiser?
[英]Django rest framework - how to serialise the model class name base serialiser?
我有一個BaseModel類:
class BaseModel(models.Model):
title = models.CharField(max_length=250, blank=True, null=True)
class Meta:
abstract = True
然后我有多個擴展此類的模型類,例如:
class Article(BaseModel):
slug = models.SlugField(max_length=250, default=timezone.now, unique=True)
我的目標是在通過我的Web服務返回的JSON對象中具有一個字段,以指示對象的類型(以便客戶端應用程序可以輕松地從電子商務產品中告知商品)。 類似於以下內容:
{
"id": 1,
"object_type: "article",
"title": "some article",
"slug": "some-article"
}
我想可能會有一個類似於以下內容的BaseModelSerializer類:
class BaseModelSerializer(serializers.ModelSerializer):
object_type = self.__class__.__name__ # ??? how to get the name/ label of the child class?
然后,我可以使用ArticleSerializer擴展BaseModelSerializer ,如下所示:
class ArticleSerializer(BaseModelSerializer):
class Meta:
model = Article
如果可以通過修改BaseModel類來實現這一點,我將感到高興。 類似於以下內容?
class BaseModel(models.Model):
title = models.CharField(max_length=250, blank=True, null=True)
object_type = self.__class__.__name__ # ??? how to get the name/ label of the child class?
class Meta:
abstract = True
class BaseModelSerializer(serializers.ModelSerializer):
object_type = serializers.SerializerMethodField()
def get_object_type(obj):
return obj.__class__.__name__.lower()
class ArticleSerializer(BaseModelSerializer):
class Meta:
model = Article
fields = ('object_type',)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.