django useful tip

最近在用django做一下项目, 我也是第一次使用django, 也是第一次比较正式的使用Python. 本文将记录一下使用django过程中遇到的一下问题和解决办法. 并且不断更新!

setting设置


几天发现部署以后显示的时间不多, 是因为时区设置到问题

对于我们中国:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> TIME_ZONE  =   ' Asia/Shanghai '

LANGUAGE_CODE 
=   ' zh-cn '


ManyToMany的bug
如果你在使用many-to-many去取数据的时候发生如下异常:

TypeError: filter() keywords must be strings

这个是有django的bug引起的:

修复方法:
django\db\models\fields\related.py 349行

         def   __init__ (self, model = None, core_filters = None, instance = None, symmetrical = None,
                join_table
= None, source_col_name = None, target_col_name = None):
            super(ManyRelatedManager, self).
__init__ ()
            self.core_filters 
=  core_filters
            self.model 
=  model
            self.symmetrical 
=  symmetrical
            self.instance 
=  instance
            self.join_table 
=  join_table
            self.source_col_name 
=  source_col_name
            self.target_col_name 
=  target_col_name
            self._pk_val 
=  self.instance._get_pk_val()

改成

         def   __init__ (self, model = None, core_filters = None, instance = None, symmetrical = None,
                join_table
= None, source_col_name = None, target_col_name = None):
            super(ManyRelatedManager, self).
__init__ ()
            
            
for  key, value  in  core_filters.items(): 
                
if   not  isinstance(key, str): 
                    
del  core_filters[key]  
                    core_filters[smart_str(key)] 
=  value
                    
            self.core_filters 
=  core_filters
            self.model 
=  model
            self.symmetrical 
=  symmetrical
            self.instance 
=  instance
            self.join_table 
=  join_table
            self.source_col_name 
=  source_col_name
            self.target_col_name 
=  target_col_name
            self._pk_val 
=  self.instance._get_pk_val()

你可能感兴趣的:(django)