Django项目遇到的问题记录

在使用Django框架的时候,由于不熟悉,碰到了一些小问题。

环境

  • Python3.6
  • Django1.11.7

问题记录

在编写HTML页面时,我写了如下代码:

1
<input type="hidden" name="article_id" value="{% if article %}{{ article.id }}{% else %} '0'{% endif %}"/>

使用时就报错:

1
invalid literal for int() with base 10: "'0'"

网上搜这个报错说是字符串转换成int,仔细一看才意识到'0'不应该加引号了…

然后去掉0的引号之后又报错:

1
2
3
4
DoesNotExist at /blog/edit/action
Exception Type: DoesNotExist
Exception Value:
Article matching query does not exist.

我的后台有:

1
2
3
4
5
if article_id == '0':
...
return ...
article = models.Arcticle.objects.get(pk=article_id)
return ...

所以article_id == '0'的值为FALSE了,把article_id打印出来发现是’ 0 ‘两边各有一个空格。

前端的语句应该写成这样:

1
<input type="hidden" name="article_id" value="{% if article %}{{ article.id }}{% else %}0{% endif %}"/>

这样的小错误也折腾了不少时间。