猿问

新 Django 版本中的 Django CharField 独特参数

在我的 forms.py 文件中,我使用 CharField。我在书中读到了有关 CharField 的唯一参数:它说如果唯一参数 = True,则该模型的 CharField 不能重复。书中介绍了Django 2.1版本。目前,争论者的名字已被更改。我这么认为是因为 Django 显示了错误标志TypeError: __init__() got an unexpected keyword argument 'unique'



慕慕森
浏览 149回答 1
1回答

蓝山帝景

要验证表单中的唯一性,您可以在保存表单之前使用表单clean_fieldname()方法进行额外的数据库查询。from django import formsfrom django.core.exceptions import ValidationErrorclass MyForm(forms.Form):    username = forms.CharField()    def clean_username(self):        if MyModel.objects.filter(username=self.cleaned_data['username'])\                .exists():            raise ValidatioError('already exists')或者如果它应该是ModelForm:from django import formsfrom django.core.exceptions import ValidationErrorfrom .models import MyModel class MyModelForm(forms.ModelForm):    class Meta:        model = MyModel        fields = ['username', ]    def clean_username(self):        if self._meta.model.objects\                .filter(username=self.cleaned_data['username'])\                .exists():            raise ValidatioError('already exists')
随时随地看视频慕课网APP

相关分类

Python
我要回答