在mongoose模式中,例如:
var EventSchema = new Schema({
title: {
type: String,
default: '',
trim: true,
required: 'Title cannot be blank'
},
description: {
type: String,
default: '',
trim: true
},
start: {
type: Date,
default: Date.now,
required: 'Must have start date - default value is the created date'
},
end: {
type: Date,
default: Date.now + 7 Days, // Date in one week from now
required: 'Must have end date - default value is the created date + 1 week'
}, …
Run Code Online (Sandbox Code Playgroud)我需要将模型数据(CharField
仅限s)写入XML文件以包含flash文件的数据.我是新手,对于我在django这样做的过程有点不清楚.我正在创建一个xml文件,然后将文本数据写入文件(就像使用csv模块,但是使用xml).应该为Flash文件读取一个非常简化的xml文件,即:
<?xml version="1.0" encoding="UTF-8"?>
<textFields>
<textField id="0" text="HELLO WORLD" />
<textField id="1" text="HELLO EARTH" />
...
</textFields>
Run Code Online (Sandbox Code Playgroud)
1.我正在使用序列化程序从模型中编写xml数据:
from django.core import serializers
data = serializers.serialize('xml', myModel.objects.filter(instanceIwantTowrite), fields=('fieldName'))
Run Code Online (Sandbox Code Playgroud)
2.然后我用core.files
以下方法创建文件:
from django.core.files import File
f = open('/path/to/new/dir/content.xml', 'w')
myfile = File(f)
Run Code Online (Sandbox Code Playgroud)
3.写入文件数据并关闭:
myfile.write(data)
myfile.close()
Run Code Online (Sandbox Code Playgroud)
这个工作到目前为止,虽然xml输出包含对象"django-objects"等的字段,我将不得不看看我是否可以在ActionScript中轻松地为flash文件解释这个.我更喜欢手动定义xml字段名称,就像在csv模块中一样.由于我是django和python的新手,我想知道是否有更简单,更简单的方法来做到这一点?
注意:在序列化程序中,我对模型对象使用过滤器,因为get
用于模型实例会返回object not iterable
错误.事实上,我过滤两次以获得单个实例,似乎必须有更好的方法.
我想在inlineformset_factory表单中更改默认上载字段(FileField),以使用django.contrib.admin.widgets中的AdminFileWidget.这样做的目的是显示当前上传文件的路径,就像在管理表单中一样(也许还有另一种方法可以做到这一点?).
我可以毫不费力地使用自定义表单来使用窗口小部件,但是无法弄清楚如何在inlineformset_factory中更改窗口小部件.
我正在运行一些长任务,我需要确保排队的任务按接收顺序执行。我在第一次测试中发现,当我达到最大工人数 (CELERYD_CONCURRENCY) 时,发送的以下任务将排队,然后执行的第一个任务实际上是最新的任务。
当然,相反的行为是我所追求的,当有空闲工人时,最旧的消息是第一个执行的。
这种行为的解释是什么,如何改变?
有没有办法以编程方式确定添加到Google云端硬盘的视频是否已完成转换/"处理"?据我所知,在完成处理之前和之后,文件 - >获取响应没有任何变化.
(PHP客户端库)
我正在尝试使用textarea表单条目,我有一些javascript代码来计算和限制字符数,其max_length和size是动态的(即这些属性在模型创建后可以改变).
为了在django form textarea小部件中包含此功能,我想我必须创建一个自定义小部件,虽然我不确定如何真正地绑定模板中的javascript代码.为了更改textarea大小,我想我会从视图中将变量传递给表单创建,以生成textarea小部件实例.
否则,现在我只是在html/js中创建模板中的输入,然后将POST数据提交到django视图,并使用getitem检索它,然后将数据直接保存到我的模型中.当然哪个工作,但不是非常django'y,如果没有内置的django验证和干净的数据功能,也许在某种程度上是脆弱的.
所以我猜两个问题: (a) 如果我创建一个自定义django表单小部件,如何将我的javascript函数应用于模板中的textarea字段(包括"onkeypress = jstextcounter ...")和(b)如果我继续只是在没有django表单的情况下检索视图中的帖子数据,是否存在漏洞,我该怎么做才能确保数据得到充分验证?(页面已经要求用户登录,而不是公共评论框)
或者也许某人之前已经创建了这样一个自定义表单窗口小部件并知道某个好的代码片段?
干杯...
编辑 所以感谢MovieYoda的帮助,我得到了这个工作,并阅读了django中的动态表格.使用%d替换,我可以动态更改js函数的maxChars属性.
在forms.py我有:
text=forms.CharField(max_length = 1000, widget=forms.widgets.Textarea())
def __init__(self, *args, **kwargs):
size = kwargs.pop('size')
maxChars = kwargs.pop('maxChars')
super(MyForm, self).__init__(*args, **kwargs)
self.fields['text'].widget.attrs['onkeypress'] = 'return textCounter(this, this.form.counter, %d);' % maxChars
self.fields['text'].widget.attrs['rows'] = size
self.fields['text'].widget.attrs['cols'] = '40'
Run Code Online (Sandbox Code Playgroud)
其中模板中的js函数'textCounter'使用maxChars变量来限制字符数.
<script type="text/javascript">
function textCounter( field, countfield, maxLimit) {
if ( field.value.length > maxLimit )
{
field.value = field.value.substring( 0, maxLimit );
return false;
}
else
{ …
Run Code Online (Sandbox Code Playgroud) 我在添加模型的新实例时遇到完整性错误,这里是追溯:
Traceback:
File "/home/robain/webapps/django/lib/python2.6/django/core/handlers/base.py" in get_response
100. response = callback(request, *callback_args, **callback_kwargs)
File "/home/robain/webapps/django/lib/python2.6/django/contrib/admin/views/decorators.py" in _checklogin
33. return view_func(request, *args, **kwargs)
File "/home/robain/webapps/django/tmanage/tempManage/src/CTmanage.py" in addCT
101. CT.save()
File "/home/robain/webapps/django/lib/python2.6/django/db/models/base.py" in save
434. self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/home/robain/webapps/django/lib/python2.6/django/db/models/base.py" in save_base
527. result = manager._insert(values, return_id=update_pk, using=using)
File "/home/robain/webapps/django/lib/python2.6/django/db/models/manager.py" in _insert
195. return insert_query(self.model, values, **kwargs)
File "/home/robain/webapps/django/lib/python2.6/django/db/models/query.py" in insert_query
1479. return query.get_compiler(using=using).execute_sql(return_id)
File "/home/robain/webapps/django/lib/python2.6/django/db/models/sql/compiler.py" in execute_sql
783. cursor = super(SQLInsertCompiler, self).execute_sql(None)
File "/home/robain/webapps/django/lib/python2.6/django/db/models/sql/compiler.py" in execute_sql
727. cursor.execute(sql, params)
File "/home/robain/webapps/django/lib/python2.6/django/db/backends/util.py" in …
Run Code Online (Sandbox Code Playgroud) 我是django的新手,并且在尝试使管理网站按照我的意愿工作时遇到了一些困难.我想知道是否为了制作管理功能,我希望最好使用继承自admin/base_site.html的模板制作自定义管理应用程序,当is_staff为true时使用带有重定向的前端登录.
最初的细节让我想到这个:
我有一系列的外键,并希望在父管理页面上显示嵌套的内联.我已经尝试过使用easymode,但它有自己的问题和要求可能会导致后来我无法解决的问题.
我想添加一个函数,允许管理员添加模型的实例,触发创建实例的相关模型和重定向等.这至少需要添加一些callables,我还没想到如何真正做到这一点在管理模型中取得任何成功,此刻似乎更容易在我自己的应用程序的views.py中快速执行此操作,而不是尝试使用管理员视图.
一般来说,创建自定义管理应用程序(在FrontEnd登录时使用is_staff = true重定向)从长远来看似乎更灵活,并且将为客户端带来更加设计和直观的管理界面 - 所以我想我的问题是,什么是半职业选手呢?(如果你知道如何破解管理员的观点和模板到你的心脏的内容,你不是一个半专业:))
感谢您提供的任何建议,我仍然会弄湿我的脚,这种建议可以节省我很多时间和头痛.