Tag: django

Django:在保存时,如何检查一个字段是否已经改变?

在我的模型中,我有: class Alias(MyBaseModel): remote_image = models.URLField(max_length=500, null=True, help_text="A URL that is downloaded and cached for the image. Only used when the alias is made") image = models.ImageField(upload_to='alias', default='alias-default.png', help_text="An image representing the alias") def save(self, *args, **kw): if (not self.image or self.image.name == 'alias-default.png') and self.remote_image : try : data = utils.fetch(self.remote_image) image = StringIO.StringIO(data) […]

Djangodynamic模型领域

我正在开发一个多租户应用程序,在这个应用程序中,一些用户可以定义自己的数据字段(通过pipe理员)来收集表单中的其他数据并报告数据。 后者使得JSONField不是一个好的select,所以相反我有以下的解决scheme: class CustomDataField(models.Model): """ Abstract specification for arbitrary data fields. Not used for holding data itself, but metadata about the fields. """ site = models.ForeignKey(Site, default=settings.SITE_ID) name = models.CharField(max_length=64) class Meta: abstract = True class CustomDataValue(models.Model): """ Abstract specification for arbitrary data. """ value = models.CharField(max_length=1024) class Meta: abstract = True 请注意CustomDataField如何将ForeignKey设置为站点 – 每个站点都有一组不同的自定义数据字段,但使用相同的数据库。 […]

如何在Django中查询为GROUP BY?

我查询一个模型, Members.objects.all() 它回报说 Eric, Salesman, X-Shop Freddie, Manager, X2-Shop Teddy, Salesman, X2-Shop Sean, Manager, X2-Shop 我想要的是,要知道最好的Django的方式来激发一个group_by查询我的分贝,就像, Members.objects.all().group_by('designation') 当然哪个不行。 我知道我们可以在“django / db / models / query.py”上做一些技巧,但是我只是好奇地知道如何在不修补的情况下做到这一点。

没有名为pkg_resources的模块

我正在部署一个Django应用程序到开发服务器,并遇到这个错误,当我运行PIP安装requirements.txt: Traceback (most recent call last): File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources pkg_resources似乎与setuptools一起分发。 最初我以为这可能不会被安装到virtualenv中的python,所以我使用以下命令将setuptools(2.6,与Python相同的版本)安装到virtualenv中的Python站点包 sh setuptools-0.6c11-py2.6.egg –install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages 编辑这只发生在virtualenv内部。 如果我在virtualenv之外打开一个控制台,那么就存在pkg_resources 但是我仍然得到相同的错误。 有关为什么pkg_resources不在path上的任何想法?

Django模板如何查找带有variables的字典值

mydict = {"key1":"value1", "key2":"value2"} 在Django模板中查找字典值的常规方法是{{ mydict.key1 }} , {{ mydict.key2 }} 。 如果密钥是一个循环variables呢? 即: {% for item in list %} # where item has an attribute NAME {{ mydict.item.NAME }} # I want to look up mydict[item.NAME] {% endfor %} mydict.item.NAME失败。 如何解决这个问题?

Django CSRF检查失败,发出Ajax POST请求

我可以通过我的AJAX文章使用一些帮助来遵守Django的CSRF保护机制。 我已经按照这里的方向: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/ 我已经完全复制了他们在页面上的AJAX示例代码: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax 我在xhr.setRequestHeader调用之前放置了一个打印getCookie('csrftoken')的内容的警报,并且确实填充了一些数据。 我不知道如何validation令牌是否正确,但我鼓励它发现并发送一些东西。 但是Django仍然拒绝我的AJAX文章。 这是我的JavaScript: $.post("/memorize/", data, function (result) { if (result != "failure") { get_random_card(); } else { alert("Failed to save card data."); } }); 这是我从Django看到的错误: [23 / Feb / 2011 22:08:29]“POST / memorize / HTTP / 1.1”403 2332 我确定我错过了一些东西,也许这很简单,但我不知道它是什么。 我已经search过所以看到一些关于通过csrf_exempt装饰器closures我的视图的CSRF检查的一些信息,但我觉得没有吸引力。 我已经试过了,它的工作原理,但我宁愿让我的POST工作的方式Django的devise,如果可能的话。 为了以防万一,这是我的观点的主旨: def myview(request): profile = request.user.profile if request.method […]

使用Ajaxdynamic地将表单添加到Django formset

我想使用Ajax自动将新表单添加到Django formset中,以便当用户单击“添加”button时,它将运行JavaScript,将新的表单(它是formset的一部分)添加到页面。

在Django表单中,如何使字段只读(或禁用),以便无法编辑?

在Django表单中,如何使字段为只读(或禁用)? 当表单被用来创build一个新条目时,所有的字段都应该被启用 – 但是当logging处于更新模式时,某些字段需要是只读的。 例如,当创build一个新的Item模型时,所有的字段都必须是可编辑的,但是在更新logging的时候,是否有办法禁用sku字段,使其可见,但不能被编辑? class Item(models.Model): sku = models.CharField(max_length=50) description = models.CharField(max_length=200) added_by = models.ForeignKey(User) class ItemForm(ModelForm): class Meta: model = Item exclude = ('added_by') def new_item_view(request): if request.method == 'POST': form = ItemForm(request.POST) # Validate and save else: form = ItemForm() # Render the view 可以重用类ItemForm吗? ItemForm或Item模型类需要进行哪些更改? 我是否需要编写另一个类“ ItemUpdateForm ”来更新项目? def update_item_view(request): if […]

使用Http Post发送图像

我想发送一个图像从Android客户端到Django服务器使用Http Post。 图片是从画廊中select的。 目前,我正在使用列表值名称对将必要的数据发送到服务器,并从JSON接收来自Django的响应。 可以使用相同的方法来处理图像(使用embedded在JSON响应中的图像的URL)? 另外,这是一个更好的方法:远程访问图像,而不从服务器下载或下载并将它们存储在位图数组中,并在本地使用它们? 图像数量less(<10),尺寸小(50×50倾angular)。 任何教程来解决这些问题将不胜感激。 编辑:从图库中select的图像缩放到所需的大小后,发送到服务器。

用Django中的自定义字段扩展用户模型

使用自定义字段来扩展用户模型(与Django的身份validation应用程序捆绑在一起)的最佳方式是什么? 我也可能想使用电子邮件作为用户名(用于身份validation的目的)。 我已经看到了一些 方法来做到这一点,但不能决定哪一个是最好的。