Использование валидатора regex в django modelforms

я хочу использовать regex валидатор для поля name в форме модели я хочу, чтобы пользователи могли вводить в это поле только английский язык, а если они хотят ввести другой язык, то получат ошибку спасибоthis is my modelform

помогите мне как это сделать спасибо

Официального способа определения языка в валидаторе django не существует. Однако вы можете использовать spacy-langdetect и включить его в функцию clean формы. Например:

from spacy_langdetect import LanguageDetector
import spacy
from django.core.exceptions import ValidationError

class AddPostModelForm(forms.ModelForm):
    [... definitions ...]

    def clean_name(self):
        name = self.cleaned_data['name']
        nlp = spacy.load('en')  # 1
        nlp.add_pipe(LanguageDetector(), name='language_detector', last=True) #2
        doc = nlp(name ) #3
        detect_language = doc._.language #4
        if detect_language['language'] != 'en':
            raise ValidationError("Only use english language")
        return name

Данная проверка ошибок основана на вероятностном прогнозе, поэтому может быть не на 100% точной, особенно в случаях с небольшим объемом текста или языком, который не очень похож на английский (греческий, латинский).

Я бы посоветовал хранить их на существующем языке и переводить после при повторном рендеринге.

Вернуться на верх