-1
カテゴリフィールドcategory_name
はunique
です。django adminからフォームが送信された後、そのフィールドのフォーム値を検証しています。Djangoのデータベースに値が存在するかどうかを調べる
admin.py
-
from django.core.exceptions import ValidationError
class categoryAdmin(admin.ModelAdmin):
list_display = ('category_name','module_name')
def add_view(self, request, extra_content=None):
self.form = CategoryUploadForm
return super(categoryAdmin, self).add_view(request)
def change_view(self, request, object_id, extra_content=None):
self.form = CategoryManageForm
return super(categoryAdmin, self).change_view(request, object_id)
def save_model(self, request, obj, form, change):
if not change:
category_name, module_names = \
self.handle_uploaded_file(request.FILES['category_file'])
else:
category_name = request.POST['category_name']
module_names = request.POST['module_name']
if category_name and Category.objects.filter(category_name=category_name).exists():
raise forms.ValidationError('This category is already in the database. Please supply a different category.')
return category_name
エラー
ValidationError at /admin/accounts/category/add/
['This category is already in the database. Please supply a different category.']
is--すべてのヘルプは高く評価されています。前もって感謝します。
モデルのフィールドに 'unique = true'が設定されています.'category_name = models.CharField(max_length = 150、空白= False、null = True、デフォルト=" "、一意= True)'エラーメッセージを表示します。私はフォーム内でそれを検証しようとします。ありがとうございました。 –
この一意の属性が設定されている場合、フォームは*既に*行います。 –
フォームにエラーメッセージが表示されていません。フォームはxmlファイルをアップロードしています。ファイルが解析されると、category_nameがsave_modelに返されます。 –