嗨,我正在关注djangoproject网站上的教程,我在localhost上收到错误说:
Unknown parameters: TEMPLATE_DEBUG
Run Code Online (Sandbox Code Playgroud)
我的settings.py看起来像这样:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'TEMPLATE_DEBUG':True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Run Code Online (Sandbox Code Playgroud)
我在TEMPLATE上添加了'TEMPLATE_DEBUG',否则我收到以下警告
?: (1_8.W001) The standalone TEMPLATE_* settings were deprecated in Django 1.8 and the TEMPLATES dictionary takes precedence. You must put the values of the following settings into your default TEMPLATES dict: TEMPLATE_DEBUG.
Run Code Online (Sandbox Code Playgroud)
我的模板文件夹在我的应用程序中,即:
my_project_name/polls/templates/polls/index.html
Run Code Online (Sandbox Code Playgroud) UDATE3:发现了这个问题.请参阅以下答案.
UPDATE2:似乎我可能通过manage.py shell运行djcelery教程来处理自动命名和相对导入问题,见下文.它仍然不适合我,但现在我收到新的日志错误消息.见下文.
更新:我在帖子的底部添加了日志.似乎示例任务没有注册?
原帖:
我想让django-芹菜起来跑步.我无法通过这个例子.
我成功安装了rabbitmq,并且没有遇到任何麻烦:http://www.rabbitmq.com/getstarted.html
然后我尝试通过djcelery教程.
当我运行时,python manage.py celeryd -l info我收到消息:[任务] - app.module.add [2011-07-27 21:17:19,990:警告/主程序]芹菜@sequoia已经启动.
所以看起来不错.我把它放在我的设置文件的顶部:
import djcelery
djcelery.setup_loader()
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
Run Code Online (Sandbox Code Playgroud)
将这些添加到我安装的应用中:
'djcelery',
Run Code Online (Sandbox Code Playgroud)
这是我的app的tasks文件夹中的tasks.py文件:
from celery.task import task
@task()
def add(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
我把它添加到我的django.wsgi文件中:
os.environ["CELERY_LOADER"] = "django"
Run Code Online (Sandbox Code Playgroud)
然后我在命令行输入了这个:
>>> from app.module.tasks import add
>>> result = add.delay(4,4)
>>> result
(AsyncResult: 7auathu945gry48- a bunch of stuff) …Run Code Online (Sandbox Code Playgroud) 假设我有这样的模特
COLORS= (
('R', 'Red'),
('B', 'Yellow'),
('G', 'White'),
)
class Car(models.Model):
name = models.CharField(max_length=20)
color= models.CharField(max_length=1, choices=COLORS)
Run Code Online (Sandbox Code Playgroud)
它在管理面板中显示为选择框但是我希望我的管理员用户多选择那些颜色,如多对多关系,如何在没有一种('RB', 'Red&Blue'),逻辑的情况下实现这一点
我正在尝试为一些Django json_view视图编写一些单元测试,而我在将json_string传递给视图时遇到了麻烦.我昨天发布了一个相关的问题,关于将json字符串传递给JS的Django视图,问题是在我的JS中我只是传递json字符串,我需要传递字符串作为对象的属性,因为我如果没有这样做,则字符串被视为生成的查询字典的关键字.我再次遇到类似的问题,除了这次它是Django View的Django单元测试.这是我的代码的简化版本,它产生相同的结果.
class MyTestCase(TestCase):
def setUp(self):
self.u = User.objects.create_user('test','test','test')
self.u.is_active = True
self.u.save()
self.client.login(username='test',password='test')
def test_create_object_from_form(self):
"""Test the creation of the Instance from the form data."""
import json
json_string json.dumps({'resource':{'type':'book','author':'John Doe'}})
print(json_string)
response = self.client.post(reverse('ajax_view'),
{'form':json_string},'json')
self.assetNotContains(response,'error')
Run Code Online (Sandbox Code Playgroud)
并且视图看起来像这样
@json_view
def ajax_view(request):
"""Process the incoming form data."""
if request.method == 'POST':
print(request.POST)
form_data = json.loads(request.POST['form'])
resource_data = form_data['resource']
form = MyUserForm(resource_data)
if form.is_valid():
...
Run Code Online (Sandbox Code Playgroud)
以下是运行测试时两个打印语句产生的内容.json_string是
{"resource": {"type": "book", "author": "John Doe"}}
Run Code Online (Sandbox Code Playgroud)
和查询字典看起来像
<QueryDict: {u'{\'form\': \'{"resource": {"type": "book", "author": "John Doe"}}\'}': …Run Code Online (Sandbox Code Playgroud) 它在DEBUG = True模式下运行.有时它会在遇到错误时抛出带有回溯信息的错误消息,但有时它只显示以下行:
Unhandled Exception
An unhandled exception was thrown by the application.
Run Code Online (Sandbox Code Playgroud)
我必须切换到开发服务器才能看到详细消息.
如何在遇到错误时始终显示回溯消息?
我使用django的默认站点地图应用程序实现了一个简单的站点地图类.由于执行时间很长,我添加了手动缓存:
class ShortReviewsSitemap(Sitemap):
changefreq = "hourly"
priority = 0.7
def items(self):
# try to retrieve from cache
result = get_cache(CACHE_SITEMAP_SHORT_REVIEWS, "sitemap_short_reviews")
if result!=None:
return result
result = ShortReview.objects.all().order_by("-created_at")
# store in cache
set_cache(CACHE_SITEMAP_SHORT_REVIEWS, "sitemap_short_reviews", result)
return result
def lastmod(self, obj):
return obj.updated_at
Run Code Online (Sandbox Code Playgroud)
问题是memcache只允许最大1MB的对象.这个比1MB大,所以存入缓存失败:
>7 SERVER_ERROR object too large for cache
Run Code Online (Sandbox Code Playgroud)
问题是django有一种自动的方法来决定何时应该将站点地图文件划分为较小的站点地图文件.根据文档(http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/):
如果您的某个站点地图的网址超过50,000,则应创建索引文件.在这种情况下,Django将自动对站点地图进行分页,索引将反映出来.
您认为启用缓存站点地图的最佳方式是什么? - 攻击django sitemaps框架以限制单个站点地图大小,比方说,10,000个记录似乎是最好的主意.为什么首先选择了50,000个?谷歌的建议?随机数? - 或许有一种方法可以让memcached存储更大的文件? - 或者也许保存了onces,站点地图应该作为静态文件提供?这意味着不是使用memcached进行缓存,而是必须手动将结果存储在文件系统中,并在下次请求站点地图时从那里检索它们(可能每天在cron作业中清理目录).
所有这些似乎都很低级,我想知道是否存在明显的解决方案......
我已经在VirtualBox中安装了Android x86我从我的主机上共享了一个文件夹,它是用于虚拟Android机器的Windows 7但我在Android VM中的任何地方都看不到这个文件夹.有没有办法在Android VM中使用此共享文件夹?
现在我正在使用IntelliJ Idea.但我的笔记本只有2Gb内存,而且有时候Idea很慢.我想为教育项目提供一点IDE.有一个AIDE,可以在Android设备上运行,但是我希望像Windows上的AIDE这样简单的编码.
扩展基类时,Java中的内存使用情况如何?
子类是否包含基类的实例(具有它自己的开销和所有)或它是否只有16字节的开销?
class Foo {
int x;
}
class Bar extends Foo {
int y;
}
Run Code Online (Sandbox Code Playgroud)
那么,更具体地说,Bar实例的内存使用量是多少?
是吗 Foo (including overhead) + Bar(including overhead)
要不就 Foo (excluding overhead + Bar(including overhead)
我已经整理了一个表格以保存食谱.它使用表单和内联formset.我的用户使用包含食谱的文本文件,他们希望剪切和粘贴数据以使条目更容易.我已经研究了如何在处理原始文本输入后填充表单部分,但我无法弄清楚如何填充内联表单集.
似乎解决方案几乎在这里拼写出来:http: //code.djangoproject.com/ticket/12213但我不能把这些碎片放在一起.
我的模特:
#models.py
from django.db import models
class Ingredient(models.Model):
title = models.CharField(max_length=100, unique=True)
class Meta:
ordering = ['title']
def __unicode__(self):
return self.title
def get_absolute_url(self):
return self.id
class Recipe(models.Model):
title = models.CharField(max_length=255)
description = models.TextField(blank=True)
directions = models.TextField()
class Meta:
ordering = ['title']
def __unicode__(self):
return self.id
def get_absolute_url(self):
return "/recipes/%s/" % self.id
class UnitOfMeasure(models.Model):
title = models.CharField(max_length=10, unique=True)
class Meta:
ordering = ['title']
def __unicode__(self):
return self.title
def get_absolute_url(self):
return self.id
class RecipeIngredient(models.Model):
quantity = …Run Code Online (Sandbox Code Playgroud) django ×7
python ×7
android ×2
java ×2
ajax ×1
caching ×1
celery ×1
django-1.9 ×1
forms ×1
ide ×1
inheritance ×1
json ×1
memory ×1
rabbitmq ×1
sitemap ×1
subclass ×1
unit-testing ×1
virtualbox ×1
windows ×1