我需要保存可以包含许多促销、许多播放列表或许多apix项目的列表。列表内容的顺序很重要,我收到的JSON将这些项嵌套在“items”下的列表中
apix_项目列表:
{
"items": [
"rhmy5prfennp",
"lpi6ghwfwshp",
"scb6kn3hbqzd",
],
"title": "Apix Item List",
}
促销列表:
^{pr2}$我想使用多人关系,但我不认为这会起作用,因为列表的项目需要是通用的。所以我有一个非常简单的列表模型:
^{3}$以及具有ForeignKeyField和GenericForeignKey字段的中介ListOrder模型:
class ListOrder(TimeStamped):
content_types = {
'app_label__in': (
'apix_items',
'playlists',
'promos',
),
'model__in': (
'apix_item',
'playlist',
'promo',
),
}
index = models.PositiveIntegerField()
target_type = models.ForeignKey(ContentType, limit_choices_to=content_types)
target_object = GenericForeignKey('target_type', 'target_id')
target_id = models.PositiveIntegerField()
container = models.ForeignKey(List)
我有一种感觉,我需要在我的序列化程序中做一些疯狂的事情,才能让它工作:
class ListOrderSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ListOrder
fields = (
'index',
'target_object',
'created',
'modified'
)
class ListSerializer(serializers.HyperlinkedModelSerializer):
items = ListOrderSerializer(many=True, required=False, source='list_order_set')
class Meta:
model = List
fields = (
'title',
'id',
'items',
'created',
'modified'
)
然而,我是新来的Django和Django REST,不知道从这里到哪里去。如何保存和检索这些通用的、有序的、嵌套的列表,同时保持中间的ListOrder不可见?在
目前没有回答
相关问题 更多 >
编程相关推荐