I'm using python 3.7 django 2.2 django rest framework 3.9.4
After running:
python manage.py migrate
An error comes out:
ValueError: invalid literal for int() with base 10: 'category'
This is my model:
class Category(models.Model):
name = models.CharField(max_length=40, default='', verbose_name="类别名", help_text="类别名") # 分类名
class Meta:
verbose_name = "分类"
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Article(models.Model):
...code...
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="cate", blank=True, verbose_name='分类',
default='')
...code...
class Meta:
ordering = ['-add_time']
verbose_name = "新闻"
verbose_name_plural = verbose_name
def __str__(self):
return self.title # 在后台中以文章标题显示
This is my serizalizers.py
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = "__all__"
class ArticleSerializer(serializers.ModelSerializer):
# 外键相关对象
tag = TagSerializer(many=True)
category = CategorySerializer()
class Meta:
model = Article
fields = "__all__"
Any friend can help?
I think the error is that you're defining the default value for the category foreign key as ''
, when it should be None
. Also you should set null = True
instead of blank = True
.
class Article(models.Model):
...code...
category = models.ForeignKey(
Category,
on_delete=models.CASCADE,
related_name="cate",
null=True, # change here
verbose_name='分类',
default=None # and here
)
...code...
删除迁移,然后再次运行迁移。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.