一、表繼承前端
由於當你makemigrations和migrate的時候會自動生成auth_user表 因此建立用戶表的時候能夠用人家自定義的auth_user表, 若是你還想在表裏增長一些字段,能夠利用繼承 from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): pass 要是這樣用繼承的話須要在settings中配置一下: AUTH_USER_MODEL ="應用名稱.UserInfo"
二、頭像:可用FileField或者ImageField數據庫
avatar = models.FileField(verbose_name="頭像",upload_to="avatar",default="/avatar/default.png")
upload_to:上傳到的具體位置
default:默認位置
三、建立時間django
auto_now :不管是你添加仍是修改對象,時間爲你添加或者修改的時間 auto_now_add:是你當前建立的時間,當你更新對象時時間不會有變法 create_time = models.DateTimeField(verbose_name="建立時間",auto_now_add=True)
四、本身建立第三張表,並設置字段。。如下是具體操做編程
這樣作的好處是:方便之後操做,能夠在第三張關聯表中增長或刪除字段編程語言
class Tag(models.Model): pass class Article(models.Model): tags = models.ManyToManyField(to="Tag",through="article2tag",through_fields=('article', 'tag')) #through_fields=('article', 'tag')至關於給這兩個字段關聯 class Article2tag(models.Model): article = models.ForeignKey(verbose_name="文章",to="Article") tag = models.ForeignKey(verbose_name="標籤",to="Tag") class Meta: '''聯合惟一''' unique_together = [ ("article","tag") ]
五、choices屬性 spa
type_choices = [ (1,"編程語言"), (2,"軟件設計"), (3,"前端系列"), (4,"數據庫"), (5,"操做系統") ] artcle_type_id = models.IntegerField(choices=type_choices,default=None)
六、自關聯的兩種表示方式,假設爲null的時候是文章贊操作系統
方式一
farther_comment = models.ForeignKey(to="Comment",verbose_name="父級評論",null=True,blank=True) 方式二
farther_comment = models.ForeignKey("self",verbose_name="父級評論",null=True,blank=True)
七、聯合惟一的表示方式設計
class Meta: '''聯合惟一''' unique_together = ("user_id","comment_id",) verbose_name_plural = "評論點贊表"