Django学習ノート:ModelにActionを追加

8275 ワード

|-Djangoバージョン:1.8
|-Pythonバージョン:3.4
models.py

1
class Story(models.Model): 2 3 # Story 4 STATUS_CHOICES = ( 5 (1, ' '), 6 (2, ' '), 7 (3, ' '), 8 (4, ' '), 9 ) 10 11 12 title = models.CharField(max_length=100, verbose_name=u' ') 13 slug = models.SlugField(verbose_name=u' ') 14 category =models.ForeignKey(Category, verbose_name=u' ') 15 owner = models.ForeignKey(User, verbose_name=u' ') 16 status = models.IntegerField(choices=STATUS_CHOICES, default=1, verbose_name=u' ') 17 18 19 class Meta: 20 ordering = ['modified','created'] 21 verbose_name_plural = verbose_name = ' ' 22 23 24 def __str__(self): 25 return self.title
admin.py

1
class StoryAdmin(admin.ModelAdmin): 2 list_display = ('title', 'owner', 'status', 'created', 'modified','read_times','top', 'id') 3 search_fields = ('title', 'markdown_content') 4 # 5 list_filter = ('status', 'owner', 'created', 'modified',) 6 prepopulated_fields = {'slug': ('title',)} 7 actions = ['make_story_public'] 8 9 def make_story_public(self, request, queryset): 10 # queryset Story 11 rows_updated = queryset.update(status=3) 12 message_bit = "%s " % rows_updated 13 self.message_user(request, "%s ." % message_bit) 14 make_story_public.short_description = u' '