[英]Multiline Charfield Django
如何在 Django 中以模型形式制作多行 CharField? 我不想使用 Textarea,因為我希望輸入的長度有限。 問題是關於“描述”字段 這是我的模型:
class Resource(models.Model):
type = models.CharField(max_length=50)
name = models.CharField(max_length=150)
description = models.CharField(max_length=250, blank=True)
creationDate = models.DateTimeField(default=datetime.now, blank=True)
這是我的表格:
class AddNewResourceForm(forms.ModelForm):
class Meta:
model = Resource
fields = ("name","type","description")
def __init__(self, *args, **kwargs):
super(AddNewResourceForm, self).__init__(*args, **kwargs)
self.fields['name'].widget.attrs.update({'class' : 'new-res-name',
'placeholder' : 'max 150 characters'})
self.fields['type'].widget.attrs.update({'class' : 'new-res-type',
'placeholder' : 'max 50 characters'})
self.fields['description'].widget.attrs.update({'class' : 'new-res-
description', 'placeholder' : 'max 250 characters'})
我認為您應該使用TextField
,確保強制執行所需的限制,這可以通過 2 個步驟完成:
1) 在description
字段上設置max_length
屬性,這將確保限制反映在客戶端。
從文檔:
如果您指定 max_length 屬性,它將反映在自動生成的表單字段的 Textarea 小部件中。 但是,它不會在模型或數據庫級別強制執行。
2) 將MaxLengthValidator應用於您的字段以確保您也有服務器端限制驗證,例如
from django.core.validators import MaxLengthValidator
class Resource(models.Model):
type = models.CharField(max_length=50)
name = models.CharField(max_length=150)
description = models.TextField(max_length=250, blank=True,
validators=[MaxLengthValidator(250)])
creationDate = models.DateTimeField(default=datetime.now, blank=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.