验证管理内联表单

2024-04-25 09:53:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在管理接口中,我需要验证一个内联的字段。站点有一个名称,必须以小写形式存储。在

如何访问inline中的name字段来执行验证?在

我也可以在模型中重写它的save方法,但是我想知道如何在管理中实现它。在

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, )

Tags: name模型名称admin站点saveinlineopen
1条回答
网友
1楼 · 发布于 2024-04-25 09:53:56

您可以使用Regex来验证字段。在

管理员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)

相关问题 更多 >