月度归档:2013年08月

Django admin 数据保存时自定义操作

使用Django框架中的admin可以非常方便地实现常用的管理功能,但有时在通过Admin添加数据时,希望在数据保存时进行一些额外的操作,这可以通过重写ModelAdmin的save_model实现。

from django.contrib import admin
class ArticleAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        # 自定义操作
        obj.save()

通过使用ModelAdmin中的其它方法,可以对admin的其它功能进行更多的控制。

Django文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

iOS UINavigationController 手动控制视图跳转

使用UINavigationController操作A、B、C三个视图控制器时,若需要先从 A跳转到B ,再从 B跳转到C ,而最终希望栈中只有A和C,即C弹出后直接回到A,可以通过如下两种方式实现。

方式一:直接修改UINavigationController的视图控制器栈
在从B跳转到C时执行如下代码
(注意 [navArray count]-1 在根视图控制器时不能使用)

NSMutableArray* navArray = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
[navArray replaceObjectAtIndex:[navArray count]-1 withObject:CViewController];
[self.navigationController setViewControllers:navArray animated:YES];

方式二:先弹再压

UINavigationController *navController = self.navigationController;
[navController popViewControllerAnimated:NO];
[navController pushViewController:CViewController animated:YES];

参考StackOver:http://stackoverflow.com/a/17328244/1998721