我有一个django模型:
class Book(models.Model):
[..]
Run Code Online (Sandbox Code Playgroud)
我希望将模型名称设为字符串:'Book'.当我试图这样做时:
Book.__class__.__name__
Run Code Online (Sandbox Code Playgroud)
它返回'ModelBase'.
任何的想法?
是否可以按模型属性过滤Django查询集?
我的模型中有一个方法:
@property
def myproperty(self):
[..]
Run Code Online (Sandbox Code Playgroud)
现在我想通过这个属性过滤,如:
MyModel.objects.filter(myproperty=[..])
Run Code Online (Sandbox Code Playgroud)
这有点可能吗?
我有一个函数名存储在一个变量中,如下所示:
myvar = 'mypackage.mymodule.myfunction'
Run Code Online (Sandbox Code Playgroud)
而我现在想要像这样打电话给我
myvar(parameter1, parameter2)
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最简单方法是什么?
我有一个模特:
class MyModel(models.Model):
...
def save(self):
print "saving"
...
def delete(self):
print "deleting"
...
Run Code Online (Sandbox Code Playgroud)
save() - 方法被触发,但delete()不是.我使用最新的svn-Version(Django 1.2版pre-alpha SVN-11593),关于http://www.djangoproject.com/documentation/models/save_delete_hooks/上的文档,这应该可行.有任何想法吗?
我了解到在Python中执行命令时,我应该使用子进程.我想要实现的是通过ffmpeg编码文件并观察程序输出直到文件完成.Ffmpeg将进度记录到stderr.
如果我尝试这样的事情:
child = subprocess.Popen(command, shell=True, stderr=subprocess.PIPE)
complete = False
while not complete:
stderr = child.communicate()
# Get progress
print "Progress here later"
if child.poll() is not None:
complete = True
time.sleep(2)
Run Code Online (Sandbox Code Playgroud)
调用child.communicate()并等待命令完成后,程序不会继续.还有其他方法可以跟随输出吗?
在我的Django(1.2)项目中,我想在模型中预填充一个字段,但我的新值被忽略了.这是片段:
class ArtefactForm(ModelForm):
material = CharField(widget=AutoCompleteWidget('material', force_selection=False))
def __init__(self, *args, **kwargs):
super(ArtefactForm, self).__init__(*args, **kwargs)
self.fields['material'].initial = 'Test'
Run Code Online (Sandbox Code Playgroud)
我也试过self.base_fields
,但没有效果:表格中始终显示数据库值.有任何想法吗?
我使用此代码段在我的管理后端中显示几个字段为readonly,但正如注释中所注意到的,它在stackinline/tabularinline上不起作用.有没有其他方法来实现这一目标?我有一个附加到模型的对象列表,只是想在模型的详细信息视图中显示它,而无法更改值.
我使用自定义字段“下载文件”扩展了 ModelAdmin,它是我的 Django 项目中 URL 的链接,例如:
http://www.myproject.com/downloads/1
Run Code Online (Sandbox Code Playgroud)
在那里,我想提供一个存储在 S3 存储桶中的文件。存储桶中的文件不是公开可读的,用户可能无法直接访问它。现在我想
理想的解决方案是让 django 充当代理,将 S3 块直接传输给用户。我使用 boto,但没有找到流式传输块的可能性。有任何想法吗?
谢谢。
我有一个简单的ModelForm:
class MyForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
del self.fields['name']
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我尝试从表单的字段列表中删除一个字段(该字段明确存在于模型中),但我得到一个例外:
TemplateSyntaxError at [..]
Caught an exception while rendering: "Key 'name' not found in Form"
Run Code Online (Sandbox Code Playgroud)
我没有写自定义表单,因此发生错误的模板是:
/templates/admin/includes/fieldset.html, error at line 4
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
- 更新 -
该问题仅出现在管理区域中.
- 更新2 -
也许跟踪转储提供了更多信息:
Original Traceback (most recent call last):
File "/Library/Python/2.5/site-packages/django/template/debug.py", line 71, in render_node
result = node.render(context)
File "/Library/Python/2.5/site-packages/django/template/defaulttags.py", line 155, in render
nodelist.append(node.render(context))
File "/Library/Python/2.5/site-packages/django/template/defaulttags.py", line 239, in render
value = bool_expr.resolve(context, True)
File "/Library/Python/2.5/site-packages/django/template/__init__.py", line 546, in resolve …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用s3-bash脚本将文件发送到amazon s3.
使用此命令:
./s3-put -T ./test2 -k <mykey> -s ./<mysecretkeyfile> /mybucketname
Run Code Online (Sandbox Code Playgroud)
导致:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>MalformedXML</Code><Message>The XML you provided was not well-formed or did not validate against our published schema</Message><RequestId>xxx</RequestId><HostId>xxx</HostId></Error>
Run Code Online (Sandbox Code Playgroud)
任何的想法?我只想通过bash发送文件.