Django 知识点

1. class DateTimeField([auto_now=False, auto_now_add=False, **options])

    auto_now 每次保存该对象时,使用当前时间修改该字段  modify
    auto_now_add 第一次保存该对象时,使用当前时间修改该字段 create


2. Field default value:
default
    The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created.

3. Model meta data:
class Meta:
        ordering = ["horn_length"]
        verbose_name_plural = "oxen"
        verbose_name = "ox"


4. raw_id_fields = ('producer',), 外键的搜索对话框

5. 可以查看一下 User权限管理界面

6. 太长的String,可以使用TextField,而不是CharField,显示时,是Textarea空间

7. Search Field 使用 "attribute__name"
    根据外键的名称,进而使用子表的其他属性进行搜索
    raw_id_fields = ('domain',)
    search_fields = ('name','domain__name')


8. 在list_display中,自定义日期格式;

class ProvinceAdmin(admin.ModelAdmin):
        list_display = ('listCreateDate', 'listModifyDate',)

    def listModifyDate(self, obj):
           return obj.modifyDate.strftime('%Y-%m-%d')
    listModifyDate.short_description='ModifyDate'
    def listCreateDate(self, obj):
        return obj.createDate.strftime('%Y-%m-%d')
    listCreateDate.short_description='CreateDate'

注意使用的函数是在 Admin class中, 接口是  f(self, obj), 因为需要针对每个record的值进行修改,所以只能在Admin里面增加函数。

list_display支持多种方式的自定义函数

model 级别的def 接口是:def f(self),针对 table schemal 的属性操作,即列级别的操作。

admin 级别的def 接口是: def f(self, obj),针对 table的Row进行操作。

还有global级别的接口是: def f(self, obj),针对table的Row,与 admin相同,函数存放在global中。


9.  Models 的 field 的 help_text 用于显示提示

    name = models.CharField(max_length=32, help_text='province name')

10.  Many to Many Mapping

     ManyToManyField存放位置,无所谓,但是一般可根据逻辑关系存放,例如 wine 和 certification, 一般情况下 wine 下有一个属性叫做certifications

     Extra field on ManyToManyField, 在ManyToManyField上使用 through='membership'就OK了。

     Recursive relationship, 使用  ForeighKey('self')就OK了。


11. Models 在存储前修改 field 的值

    class Producer(models.Model):
            name = models.CharField(max_length=64)
            address = models.CharField(max_length=196)
  
            def save(self, **kwargs):
                    self.name = self.name + self.address
                    super(Producer, self).save(**kwargs)
            #end def save


TODO:

1. admin 的 action 操作,自定义

      编写一个action 跳出 对话框,然后再选择后,确定后,再跳回来.

  --功能:合并重复 ID  引用的记录 为第一个。


2. 权限控制 比较麻烦啊~~~,需要理解和测试

Permission  与 ContentType有关系。

Permission 可以自定义, 关于class Admin, 等等。


3. raw_id_fields,选择ID后,需要在旁边显示Value

4. 将admin 切换为中文,涉及多国语言设置

5. how to save the images  into SinaApp  : KVDB, Storage.

  --》 KVDB --> value大小限制4M,

直接的Key-Value与wine需求相符合,而且访问比较方便

--》 Storage ,1个APP可以建立最多5个domain,每个domain最多只能有2G空间。  

容量大点,但是还有限制,暂时OK。


django admin 密码丢失

manage.py changepassword username


6. sinaapp 上的权限划分问题。

7. Django + Ajax  study

8. auto complete --> JQuery 插件

9. Tree View



功能需求:
   1. Image Show/Save/Update/Insert
   2. Custom the Tree View of some models list
   3. Custom Search field(select field) of tbl_wine
   4. Merge the Repeat Records

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值