簡體   English   中英

多線 Charfield Django

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM