本部分记录建立模型,以及模型迁移中遇到的问题
代码:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
# Create your models here.
class BlogArticles(models.Model):
title = models.CharField(max_length = 30)
author = models.ForeignKey(User,related_name = "bolg_posts")
body = models.TextField()
publish = models.DateTimeField(default = timezone.now)
class Meta:
ordering = ("-publish",)
def __str__(self):
return self.title
1. No changes detected
解决:python manage.py makemigrations 改为 python manage.py makemigrations 应用名
2. TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因:在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题
解决:
author = models.ForeignKey(User,related_name = "bolg_posts")
改为
author = models.ForeignKey(User,related_name = "bolg_posts",on_delete=models.CASCADE)
3. ERRORS: bolg.BlogArticles: (models.E014) 'ordering' must be a tuple or list (even if you want to order by only one field).
为需要注意的问题:排序方法是元组,需符合元组语法规范