使用Django/DRF-React-Redux項目。所以我想返回用戶登錄驗證的特定消息。如果憑證不匹配,它們會得到一個錯誤字符串,如果用戶處於不活動狀態,則會得到另一個錯誤字符串。Django Rest框架的ValidationError中的行中斷和呈現HTML
我想要做的是爲其中一條消息,我需要兩個換行符,另一個我想呈現HTML,因爲它應該包含一個電子郵件地址。任何我讀過的東西都不起作用。例如,對於HTML:
Put HTML into ValidationError in Django
這裏是方法:
def validate(self, data):
username = data['username']
password = data['password']
user_qs = User.objects.filter(username__iexact=username)
# user_b = User.objects.filter(email__iexact=username)
# user_qs = (user_a | user_b).distinct()
if user_qs.exists() and user_qs.count() == 1:
user_obj = user_qs.first()
password_passes = user_obj.check_password(password)
if not user_obj.is_active:
raise ValidationError((mark_safe('This user is inactive. Please contact The Company at <a href="mailto:[email protected]?subject=Inactive Account">[email protected]</a>.')))
if password_passes:
data['username'] = user_obj.username
payload = jwt_payload_handler(user_obj)
token = jwt_encode_handler(payload)
data['token'] = token
return data
raise ValidationError('The credentials provided are invalid.\nPlease verify the username and password are correct.')
不用說,這是不渲染的前端如預期。不打破線條,不呈現HTML,只是將其顯示爲鍵入。
我猜如果一切都失敗了,我可以簡化服務器對「無效」或「無效」的響應,並只顯示完整的消息客戶端。
檢查是否它返回一個陣列,使得在客戶端側,你可能需要做錯誤[0] – dkarchmer
DRF究竟返回什麼?也許這個問題是不是在Django,但在js – serg
@dkarchmer雙檢查,是的,我需要添加數組索引。雖然它在控制檯中使用幾個換行符正確呈現,但它不會在前端呈現。所以看起來塞爾格的建議可能也是對的。 React正在做一些事情。 – sockpuppet