我在Heroku上使用postgresql为我的Django App.当我尝试为我的帖子发表评论时,我有时会得到这个错误(有时候不是所有时间).
尽管存在错误,但注释仍然保存,但save()之后的所有代码都不会执行.
这个问题只发生在postgresql上.在我使用sqlite的本地主机上,一切正常.
我不确定这是什么原因.
这就是我的模型的样子
class Comment(models.Model):
post = models.ForeignKey(post)
date = models.DateTimeField(auto_now_add=True)
comment = models.TextField()
comment_user = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
这就是我的评论模型的样子.那是因为我没有添加max_length进行评论吗?这是Traceback
DatabaseError at /post/114/
value too long for type character varying(10)
Request Method: POST
Request URL: http://www.mysite.com/post/114/
Django Version: 1.4.1
Exception Type: DatabaseError
Exception Value:
value too long for type character varying(10)
Exception Location: /app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py in execute, line 52
Python Executable: /app/.heroku/venv/bin/python2.7
Python Version: 2.7.2
Python Path:
['/app',
'/app/.heroku/venv/bin',
'/app/.heroku/venv/lib/python2.7/site-packages/pip-1.1-py2.7.egg',
'/app/.heroku/venv/lib/python2.7/site-packages/distribute-0.6.31-py2.7.egg',
'/app',
'/app/.heroku/venv/lib/python27.zip',
'/app/.heroku/venv/lib/python2.7',
'/app/.heroku/venv/lib/python2.7/plat-linux2',
'/app/.heroku/venv/lib/python2.7/lib-tk',
'/app/.heroku/venv/lib/python2.7/lib-old',
'/app/.heroku/venv/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2', …Run Code Online (Sandbox Code Playgroud) 我试图允许用户输入字母数字,下划线和空格作为名称.我一直在if not re.search(r'^[\w-]+$', name):用来检查名称是否包含除字母数字,下划线和空格以外的任何内容.但在这里我只能输入一个单词,而不是多个单词.我究竟做错了什么?
我有一个模型叫
class UserTag(models.Model):
name = models.CharField(max_length=64, unique= True)
users = models.ManyToManyField(User)
Run Code Online (Sandbox Code Playgroud)
我正在尝试根据这样的用户过滤其内容
usertags = UserTag.objects.filter(users=request.user)
Run Code Online (Sandbox Code Playgroud)
现在我想要这个特定查询的所有标签名称的列表。我知道我可以使用循环
for tag in usertags:
tags.append(tag.name)
Run Code Online (Sandbox Code Playgroud)
但是如果用户有 1000 个标签呢?这不会减慢响应速度吗?有没有更有效的方法来处理这个问题?
我正在尝试在docker中运行一个简单的Flask应用程序。但是似乎即使我更新了app.py代码并重新启动docker容器也没有任何更新。
我在OS X上运行docker。这是否是我所缺少的简单东西,或者这是预期的行为?
这是我的docerfile的样子:
FROM ubuntu:14.04.3
# install dependencies
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y supervisor
RUN apt-get install -y python3-pip
# update working directories
ADD ./app /app
ADD ./config /config
ADD requirements.txt /
# install dependencies
RUN pip3 install -r requirements.txt
# setup config
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
RUN rm /etc/nginx/sites-enabled/default
RUN ln -s /config/nginx.conf /etc/nginx/sites-enabled/
RUN ln -s /config/supervisor.conf /etc/supervisor/conf.d/
EXPOSE 80
CMD ["supervisord", "-n"]
Run Code Online (Sandbox Code Playgroud) 我试图找到一种基于datetimefiled进行基于文件管理器的查询的直接方法.我尝试过类似的东西
timeDiff = datetime.datetime.now(pytz.utc) - latest_order.date
days = timeDiff.days
if days <= 2:
Run Code Online (Sandbox Code Playgroud)
但它总是给我RuntimeWarning: DateTimeField received a naive date time警告.有没有更好的方法来激发这些查询?我怎么能做,例如,filer并选择48小时前创建的所有对象?
这样的事情会是正确的做法吗?
example = Example_Request.objects.filter(date_created__gte=datetime.datetime.today()-datetime.timedelta(days=2))
Run Code Online (Sandbox Code Playgroud)