我在Django工作,我有,我寫了一個住在model.py根據URL的Django
這個驗證應該返回一個validationError當輸入是壞的自定義驗證的情況下發送不同的錯誤。
在我正在開發的項目中,我們正在爲我們的管理控制檯使用Django Rest Framework和Django管理面板。他們連接到相同的數據庫
我的問題是,當請求來自API我需要返回一個'serializers.ValidationError'(其中包含狀態代碼400),但是當請求來自管理面板我想返回一個在管理面板上工作的'django.core.exceptions.ValidationError'。異常.ValidationError在API中無法正確顯示,並且serializers.ValidationError導致管理面板中斷。有什麼方法可以將適當的ValidationError發送到適當的地方嗎?
這裏是我的驗證功能(它生活在模型中)
def validate_unique(self, *args, **kwargs):
super(OrganizationBase, self).validate_unique(*args, **kwargs)
qs = self.__class__._default_manager.filter(organization_type="MEMBER")
if not self._state.adding and self.pk is not None:
qs = qs.exclude(pk=self.pk)
if qs.exists():
raise serializers.ValidationError("Only one organization with \'Organization Type\' of \'Member\' is allowed.") #api
raise exceptions.ValidationError("Only one organization with \'Organization Type\' of \'Member\' is allowed.") #admin
末這兩行是爲了說明的緣故寫在一起的兩個錯誤,在這種情況下,只有一個會跑
的#API基本上我想送錯誤a當請求從管理面板和errorB到來時,請求從API來
謝謝
我不明白的API和Django的管理是如何linked.also 「的exceptions.ValidationError不會在API中正確顯示」 太模糊有幫助。 – Linovia
他們沒有鏈接,他們只是使用相同的數據庫。基本上我想在請求來自管理面板時發送errorA,當請求來自API時,發送errorB – purplefloyd