django官網ModelForm ModelAdmin
阿新 • • 發佈:2018-03-06
django格式整理
- ModelForm
class AuthorForm(ModelForm): title = CharField(validators=[def_of_validator_name]) class Meta: model = Author fields = (‘name‘, ‘title‘, ‘birth_date‘) widgets = { ‘name‘: Textarea(attrs={‘cols‘: 80, ‘rows‘: 20}), } labels = { ‘name‘: _(‘Writer‘), } help_texts = { ‘name‘: _(‘Some useful help text.‘), } error_messages = { ‘name‘: { ‘max_length‘: _("This writer‘s name is too long."), }, }
2 ModelAdmin
class ArticleAdmin(admin.ModelAdmin): ## 2 search_fields=(‘title‘,‘join__xx‘) list_display = [‘title‘, ‘status‘] list_filter=(‘title‘,) list_editable=(‘xxx‘,) ordering = [‘title‘] actions = [make_published] ## 3 filter_horizontal=(‘manytomany‘,) admin.site.register(Article, ArticleAdmin)
3 Admin Action
from django.db import models from django.utils.html import format_html STATUS_CHOICES = ( (‘d‘, ‘Draft‘), (‘p‘, ‘Published‘), (‘w‘, ‘Withdrawn‘), ) class Article(models.Model): title = models.CharField(max_length=100) body = models.TextField() status = models.CharField(max_length=1, choices=STATUS_CHOICES) ## for web display def colored_status(self): if self.status==‘d‘: format_td=format_html(‘<span class="xxxcolor">xxx<span>‘) return format_td colored_status.short_description="onweb_show_name" def __str__(self): return self.title
from django.contrib import admin
from myapp.models import Article
def make_published(modeladmin, request, queryset):
queryset.update(status=‘p‘)
make_published.short_description = "Mark selected stories as published"
class ArticleAdmin(admin.ModelAdmin):
list_display = [‘title‘, ‘status‘,‘colored_status‘]
ordering = [‘title‘]
actions = [make_published]
admin.site.register(Article, ArticleAdmin)
django官網ModelForm ModelAdmin