zoukankan      html  css  js  c++  java
  • 1:django models

    重温django model

    1:many-to-many 的额外属性

    一般情况下,many-to-many直接就可以满足我们的要求,考虑这样一种情况:

    音乐家和乐团是many-to-many的关系,但是我们还想在他们多对多的关系中添加其他属性,比如,一个音乐家什么时候加入一个乐团,这时候我们可以这样做

    通过through参数来作为两个类的媒介

    class Person(models.Model):
        name = models.CharField(max_length=128)
    
        def __unicode__(self):
            return self.name
    
    class Group(models.Model):
        name = models.CharField(max_length=128)
        members = models.ManyToManyField(Person, through='Membership')
    
        def __unicode__(self):
            return self.name
    
    class Membership(models.Model):
        person = models.ForeignKey(Person)
        group = models.ForeignKey(Group)
        date_joined = models.DateField()
        invite_reason = models.CharField(max_length=64)

     2:两个常用的model函数__unicode__()和get_absolute_url()

    class Person(models.Model):
        first_name = models.CharField(max_length=50)
        last_name = models.CharField(max_length=50)
    
        def __unicode__(self):
            return u'%s %s' % (self.first_name, self.last_name)
        def get_absolute_url(self):
            return "/people/%i/" % self.id

     3:代理

    有时候你想为一个类添加新的方法或者其他而不想增加额外的数据库空间,那你可以使用代理,

    from django.contrib.auth.models import User
    
    class MyUser(User):
        class Meta:
            proxy = True
    
        def do_something(self):
            ...

    MyUser是User的代理,MyUser可以访问User的数据库空间,并且可以做一些额外的事情

    p

  • 相关阅读:
    生成XML文件
    webService的发布与调用
    does not contain bitcode ShardSDK等三方库
    IOS在Document目录下创建文件夹、保存、读取、以及删除文件
    判断IOS安装后是否是第一次启动
    OC中使用单例模式
    两个时间(日期)段交集判断方法
    $(document).ready vs. $(window).load
    基于vant上传图片添加水印
    常用的正则校验
  • 原文地址:https://www.cnblogs.com/qwj-sysu/p/4149766.html
Copyright © 2011-2022 走看看