0
假設我在Django中有一個抽象模型,有兩個模型延伸。Django抽象模型 - 如何在抽象視圖方法中實現特定訪問?
在Django Rest Framework通用視圖中,如何控制兩個實現模型之一的創建?
我的解決辦法是下面:
from enum import Enum
from rest_framework.views import APIView
class BazType(Enum):
FOO = 1
BAR = 2
class AbstractView(APIView):
def __init__self():
#Init code here
def _internal_method(self, django_model, this_type = BazType.FOO):
if this_type == BazType.FOO:
record, created = ConcreteModelOne.objects.get_or_create(some_field = django_model)
elif this.type == BazType.BAR:
record, created = ConcreteModelTwo.objects.get_or_create(some_field = django_model)
它的工作原理,但有擺脫的if/else塊的方式嗎?換句話說,從AbstractView
的子類中,有沒有辦法通過get_or_create
方法調用所需的模型的某個標識符?