Django学習ノート:ModelにActionを追加
8275 ワード
|-Djangoバージョン:1.8
|-Pythonバージョン:3.4
|-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' '