2017-01-12 7 views
0

私は管理インターフェースを使用しているため、インラインにあるフィールドを検証する必要があります。 サイトは、という名前がで、小文字で保存する必要があります。管理者インラインフォームを確認する

フィールドにインラインでアクセスして検証するにはどうすればよいですか?

また、モデルの保存メソッドをオーバーライドすることもできますが、管理者の方でこれを行う方法を知りたいと思います。

class SiteInline(admin.TabularInline): 
    model = Site 
    classes = ('grp-collapse grp-open',) 
    inline_classes = ('grp-collapse grp-open',) 


class CompanyAdmin(admin.ModelAdmin): 
    ordering = ['name'] 
    inlines = (SiteInline,) 

答えて

1

フィールドを検証するためにRegexを使用できます。

admin.py

from django import forms 
from django.contrib import admin 
from django.core import validators 
from django.utils.translation import ugettext_lazy as _ 

from .models import Company, Site 


class SiteInlineAdminForm(forms.ModelForm): 
    name = forms.CharField(max_length=16, 
     help_text=_('Required. lower case character For Example: test'), 
     validators=[ 
      validators.RegexValidator(r'^[a-z]*$', 
       message=_('Enter a valid name. This value may contain only lower case character.')), 
     ]) 

    class Meta: 
     model = Site 
     exclude =() 


class SiteInline(admin.TabularInline): 
    model = Site 
    form = SiteInlineAdminForm 
    classes = ('grp-collapse grp-open',) 
    inline_classes = ('grp-collapse grp-open',) 


class CompanyAdmin(admin.ModelAdmin): 
    ordering = ['name'] 
    inlines = (SiteInline,) 


admin.site.register(Company, CompanyAdmin) 
関連する問題