验证管理内嵌形式

问题描述 投票:0回答:1

我管理接口,我需要验证一个字段,它是一个串联的内部。网站有哪些必须存储在小写的名称。

如何访问到名称字段中嵌入到执行验证?

我也可以覆盖车型其保存方法,但我想知道如何做到这一点的管理。

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, )
python django django-admin
1个回答
1
投票

您可以使用正则表达式验证字段。

admin.朋友

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)
© www.soinside.com 2019 - 2024. All rights reserved.