1
maxlength가 300 인 태그 CharField
이 있지만 기본 입력에는 100 문자를 예약해야하지만 사용자가 입력을 통해 나머지 200 문자를 설정할 수있게하고 싶습니다. 텍스트 상자. 내 공장은 모델에서 charfield의 maxlength를 300으로 설정하고, 양식에서 사용자 입력을 200 자로 제한하는 입력을 위젯으로 만듭니다.Django는 위젯을 사용하여 ModelForm 속성을 덮어 씁니다.
그러나 필자는 테스트를 한 결과 입력 필드의 최대 길이를 charfield 자체의 최대 길이에서 변경할 수 없음을 확인했습니다. 아무도 이것을 어떻게 알아?
models.py
class Video(models.Model):
title = models.CharField(max_length=50)
tags = models.CharField(max_length=200)
form.py
class VideoForm(forms.ModelForm):
class Meta:
model=Video
fields=['title','description','authorId','tags','video','thumbnail']
#a widget is django's representation of an html input element
widgets = {
'tags': forms.Textarea(attrs={'cols': 80, 'rows': 20,'maxlength':5}),
}
위의 코드의 결과 HTML 텍스트 영역 <textarea cols="80" id="id_tags" maxlength="200" name="tags" rows="20"></textarea>
이지만, 대신에 나는 maxlength
5.
답장을 보내 주셔서 감사합니다. 답변으로 선택했는데 CharField를 Textfield로 만들면 실제로 문제를 해결 한 이후로 직접 테스트하지 않았습니다 (매우 덜 우아하고 효율적인 방식으로). 그래서 maxlength를 명시 할 필요가 없었습니다) 그리고 위젯을 사용하여 최대 길이를 설정했습니다. – Oblivionkey3