• 在python2中,django的Model都是调用的__unicode__方法来进行数据的显示,所以在model中直接复写__unicode__方法即可,不必复写__str__
  • 初始化一个django app,同时要做的事情有:在INSTLLED_APP中添加这个App名字,添加static目录,添加template目录
  • django model中是可以写一个父model来完成一些通用方法的抽象,但是这个model必须是一个abstract class
class BaseModel(models.Model):
    class Meta:
        abstract = True

def common_method(self):
    # common implementation
    pass
  • django template中的filter很有限(比方说有add没有substract),有的时候必须得自己定义一些模板中需要的方法来实现经常使用的功能。使用步骤是:1.在app中建立templatetags文件夹,然后写python文件,2.在template中load这个文件比如 {% load my_filters %},这样就可以使用了如{{ price|subtract:cost }}。模板文件例:
#coding:utf-8

from django import template
register = template.Library()

@register.filter
def subtract(value, arg):
    return value - arg
  • django的app中使用url函数来进行url的映射,里面有一个name的参数,来表示此url规则的命名。当在template中,写anchor的href的时候可以使用{% url "pools:detail" question.id %} 来直接在template中对url进行渲染

  • django的template中,可以使用 {{forloop.counter}} 来表示循环中当前的index,这样就可以替代原生python中的enumerate

[to be continued]