如何解决blog.Post:models.E014“订购”必须是一个元组或列表即使您只想按一个字段订购在Django
我正在为django博客应用程序建模。但是在运行python manage.py makemigrations blog
时,出现以下错误消息:
SystemCheckError: System check identified some issues:
ERRORS:
blog.Post: (models.E014) 'ordering' must be a tuple or list (even if you want to order by only one field).
这是我的models.py
文件:
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class Post(models.Model):
STATUS_CHOICES = (
('draft','Draft'),('published','Published')
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250,unique_for_date='publish')
author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='blog_posts')
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,choices=STATUS_CHOICES,default='draft')
class Meta:
ordering = ('-publish')
def __str__(self):
return self.title
该错误表明我的订单应该是列表或元组。但是已经是。 我无法理解此错误。有人可以帮我吗?预先感谢
解决方法
尝试一下:
ordering = ('-publish',)
,
您必须更改此设置:
class Meta:
ordering = ('-publish')
为此:
class Meta:
ordering = ('-publish',)
请注意-publish
注释2 :在python中,(1)只是一个数字,但是(1)是tuple
。
就我而言,它需要一个元组,即使您只解析其中的一个项目,该元组也必须包含逗号,减号表示您要从最新的项目中订购。
class Meta:
ordering = ('-name',)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。