这很烦人.我在django模板上引用了一个javascript文件:
<script src="{% static 'js/login.js' %} "></script>
Run Code Online (Sandbox Code Playgroud)
我对那个js文件做了一些更改.然后,我刷新页面,我看不到发生的变化.
如果我从文件中删除javascript并将其放入HTML中,它可以正常工作,但如果我尝试使用外部js文件,那么它不会.我试过关闭服务器并多次运行runserver,我也尝试过从Firefox更改为Chrome.这根本没有意义.请帮助我理解,我可以在HTML中包含所有js,但令我困扰的是,我不能以正常的方式做到这一点.
有关此错误的更多详细信息(我发现的#$&%#weirdest事件):
javascript是这样的:
old_sentence = "Dig that hole, forget the sun" // this is what I want to change
$("#jqselector").text(old_sentence)
new_sentence = "Run, rabbit, run" // this is the new sentence, it just won't show up.
Run Code Online (Sandbox Code Playgroud)
所以,我改变了js并重新启动服务器,html仍显示旧句子.然后我删除了对login.js文件的引用,并将所有js放在HTML中的脚本标记内,当然,出现了新的句子.然后我包含login.js文件,注释掉html里面的js但我删除了login.js文件中的所有内容,使其成为一个空文件......但是旧句子仍然显示出来.因此旧的login.js文件必须在我不知道的地方兑现.然后我打开Chrome并再次尝试,同样的问题.
它能是什么?有强制django刷新静态文件的选项吗?我以为重启服务器就足够了...我应该重启我的电脑吗?:/ 大声笑.
这是一个简单的问题.我想知道写的是否相同:
queryset = Model.objects.filter(field=None)
Run Code Online (Sandbox Code Playgroud)
比:
queryset = Model.objects.filter(field__isnull=True)
Run Code Online (Sandbox Code Playgroud)
我正在使用django 1.8
我有这个模型字段:
id_student = models.PositiveIntegerField(primary_key=True, max_length=10)
Run Code Online (Sandbox Code Playgroud)
该max_length
限制不起作用.我可以登录管理员并创建一个id超过10个字符的学生.我怎么解决这个问题?
我试图遵循"Django的两个勺子"一书的建议,虽然这是一本非常好的书,但我认为这一部分还不清楚.所以,我拆分我的设置文件并创建了一个这样的文件夹:
settings/
__init__.py
base.py (allmost everything there)
local.py (dev. specific settings)
production.py (settings for Heroku)
Run Code Online (Sandbox Code Playgroud)
大多数设置都在base.py文件中
在local.py我有这个:
# settings/local.py
from .base import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
INSTALLED_APPS += ("debug_toolbar", "django_extensions", "south",)
Run Code Online (Sandbox Code Playgroud)
在production.py我有这个:
from .base import *
INSTALLED_APPS += ("gunicorn",)
Run Code Online (Sandbox Code Playgroud)
当我在本地运行时:
python manage.py runserver 7000 --settings=appname.settings.local
python manage.py runserver 7000 --settings=appname.settings.production
Run Code Online (Sandbox Code Playgroud)
一切正常.
但是当我将更改推送到Heroku时,我得到了日志:
File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 354, in import_app
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
Run Code Online (Sandbox Code Playgroud)
所以,我猜Heroku没有找到我的设置文件,我不知道如何解决这个问题(可能很简单).
Django的两个独家新闻在这里具有讽刺意味,它写道"平台即服务 - 参见第25.2节",然后在该部分中它只写"读取平台文档":/
我在文档中找不到这个.当我运行时python manage.py collecstatic --no-input
它是否意味着它会对流程中弹出的任何提示回答"是"?同样的python manage.py migrate --no-input
.
我是Postgres和Heroku的新手.我试图从Heroku中提取数据库,但我遗漏了一些简单的东西.我做了:
heroku pg:pull HEROKU_POSTGRESQL_IVORY_URL localdb
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
createdb: database creation failed: ERROR: permission denied to create database
Run Code Online (Sandbox Code Playgroud)
然后我尝试了同样的"sudo".我得到了:
createdb: could not connect to database template1: FATAL: role "root" does not exist
Run Code Online (Sandbox Code Playgroud)
所以,我必须缺少一些我找不到的简单命令.我在Linux上,我安装了Postgres并正在工作.
原始错误是:
Got AttributeError when attempting to get a value for field `original` on serializer `ProductImageSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `RelatedManager` instance.
Original exception text was: 'RelatedManager' object has no attribute 'original'.
Run Code Online (Sandbox Code Playgroud)
这是我的models.py
:
class Product(models.Model):
name = models.CharField(max_length=100, db_index=True)
ean = models.CharField(max_length=13, db_index=True)
...
class ProductImage(models.Model):
product = models.ForeignKey(Product, null=True, related_name='images', on_delete=models.CASCADE, db_index=True)
original = models.ImageField(upload_to=get_uuid_image)
medium = models.ImageField(upload_to=get_uuid_image)
small = models.ImageField(upload_to=get_uuid_image)
Run Code Online (Sandbox Code Playgroud)
序列化器:
class ProductBasicSerializer(serializers.ModelSerializer):
tags = …
Run Code Online (Sandbox Code Playgroud) 我一直试图找到有关此设置的信息,但没有太多.有人可以解释一下这个设置是什么吗?我应该在生产中把它关闭吗?...只是想了解它,也许我在django中遗漏了一些重要的东西.
(我用django 1.6)
有没有一种方法可以用来检查a raw_input
是否是整数?
我在网上研究后发现了这种方法:
print isinstance(raw_input("number: ")), int)
Run Code Online (Sandbox Code Playgroud)
但是当我运行它并输入4
例如,我得到FALSE
.我是python的新手,任何帮助都会受到赞赏.
在一个小论坛中,任何用户都可以保存帖子.有时这些帖子包括用引号("")包围的单词.当我尝试使用javascript处理这些字符串时,这会给我一个错误.
我写了一些使用django变量的jquery代码,如下所示:
new_text = "{{text|safe}}";
$("#text_p").text(new_text);
Run Code Online (Sandbox Code Playgroud)
如果我将其标记为"安全",那么javascript会给我一个语法错误:
the text "(error here)word between quotes" the user posted
Run Code Online (Sandbox Code Playgroud)
这是合乎逻辑的,因为javascript理解这样的引号:
new_text = "this is the text "word between quotes" the user posted"
Run Code Online (Sandbox Code Playgroud)
所以,如果我不将它标记为"安全"并让django转义文本,它不会给我一个错误,但文本看起来像这样:
the text "word between quotes" the user posted
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做,我想这可能不是简单的原因,如果我使用单引号来声明javascript变量,当用户发布带单引号的文本时,我会遇到同样的问题.如果我使用正则表达式替换双引号而不将文本标记为"text | safe",则其他标签将被转义,文本将充满"<br />"等.
我有一个可能有用的想法,但是很难看,可能不是最好的选择:在<p class = "hidden">
标签中包含文本,然后使用jquery调用它.
所以,问题是,我该如何解决这个问题?,还有更好的方法吗?在此先感谢您的帮助.
编辑:我创建了一个Runnable来更好地解释它.
django ×8
heroku ×2
python ×2
debugging ×1
django-admin ×1
integer ×1
javascript ×1
jquery ×1
postgresql ×1
python-2.7 ×1
quotes ×1
raw-input ×1
settings ×1
string ×1