简体   繁体   中英

ValueError: invalid literal for int() with base 10: 'category'

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM