来自我的主pipe的指示:“我想避免在models.py放置任何逻辑,从这里开始,让我们用它作为访问数据库的类,并将所有逻辑保存在使用模型类的外部类中,他们。” 我觉得这是错误的路要走。 我觉得为了保持文件小而保持逻辑不是模型是一个坏主意。 如果逻辑在模型中是最好的,那么无论文件大小如何,这都是它应该去的地方。 那么有没有简单的方法来使用包括? 在PHP中,我想向主pipebuild议我们只有models.py include()来自其他地方的模型类。 从概念上讲,这将允许模型拥有我们想要的所有逻辑,但通过增加文件数量(导致冲突等修订控制问题较less)来保持文件的大小。 那么,是否有一种简单的方法可以从models.py文件中删除模型类,但仍然可以使用所有的Django工具? 或者,对于“large”models.py文件的一般问题,是否有完全不同的优雅的解决scheme? 任何input将不胜感激。
在我的form.Formvalidation用户input值后,我将它们传递给一个单独的(外部)进程进行进一步处理。 这个外部过程可能会在值中find更多的错误。 有没有办法将这些错误注入已经过validation的表单中,以便通过通常的表单错误显示方法(或者是否有更好的替代方法)来显示这些错误? 一个build议是在表单validation中包含外部处理,这是不理想的,因为外部处理不仅仅是validation。
我find了Django Admin的默认models.ManyToManyField小部件使用起来很麻烦。 这是HTML select元素,如果你有很多“其他”模型的对象,那么实际find你想要与“this”对象关联的“其他”对象是不切实际的。 如果你有很多 “其他”模型的对象,它甚至会减慢pipe理页面的渲染速度。 我知道,我可以build立自己的自定义pipe理小部件,并将其应用到我的ManyToManyFields ,但我有没有预先build立的那些,我可以使用? 在我的梦中,我画了一个自动完成的文本inputHTML小部件。 这在Djangopipe理框架中是否可行? 谢谢。
我正在尝试在表单初始化后将字段设置为某个值。 例如,我有以下class级。 class CustomForm(forms.Form): Email = forms.EmailField(min_length=1, max_length=200) 在我看来,我希望能够做到这样的事情: form = CustomForm() form["Email"] = GetEmailString() return HttpResponse(t.render(c))
有没有简单的机制来重写unit testing的Django设置? 我有一个经理在我的模型之一返回特定数量的最新对象。 它返回的对象数量由NUM_LATEST设置定义。 如果有人要改变设置,这有可能使我的testing失败。 如何覆盖setUp()上的设置,然后在tearDown()上恢复它们? 如果这是不可能的,有没有办法我可以猴子修补方法或模拟设置? 编辑:这是我的经理代码: class LatestManager(models.Manager): """ Returns a specific number of the most recent public Articles as defined by the NEWS_LATEST_MAX setting. """ def get_query_set(self): num_latest = getattr(settings, 'NEWS_NUM_LATEST', 10) return super(LatestManager, self).get_query_set().filter(is_public=True)[:num_latest] pipe理器使用settings.NEWS_LATEST_MAX .NEWS_LATEST_MAX切片查询集。 如果设置不存在, getattr()仅用于提供默认值。
我正在使用reportlab pdfgen创build一个PDF。 在PDF中有一个由drawImage创build的图像。 为此我需要URL的图像或视图中的图像的path。 我设法build立的URL,但我怎么会得到图像的本地path? 我如何获取url: prefix = 'https://' if request.is_secure() else 'http://' image_url = prefix + request.get_host() + STATIC_URL + "images/logo_80.png"
我在django 1.4上有一个错误信息: 字典更新序列元素#0具有长度1; 2是必需的 [编辑] 当我尝试使用模板标签时发生这种情况:`{%for v in values%}: dictionary update sequence element #0 has length 1; 2 is required Request Method: GET Request URL: … Django Version: 1.4.5 Exception Type: ValueError Exception Value: dictionary update sequence element #0 has length 1; 2 is required Exception Location: /usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __init__, line 21 Python Executable: /usr/bin/uwsgi-core […]
我刚刚阅读了Django 1.9的alpha发行说明 ,看到startapppipe理命令现在添加了一个apps.py文件 。 这个文件的目的是什么? startapp文档没有提供更多信息。
我似乎无法弄清楚如何设置我的Django安装“默认”logging器。 我想在settings.py使用Django 1.3的新LOGGING settings.py 。 我已经看过Django Logging Doc的例子 ,但是在我看来,他们只是设置了处理程序来处理特定的logging器。 在他们的例子中,他们为名为“django”,“django.request”和“myproject.custom”的logging器设置处理程序。 我所要做的就是设置一个默认的logging.handlers.RotatingFileHandler ,它将默认处理所有的logging器。 也就是说,如果我在我的项目的某个地方创build了一个新模块,并且它被表示为my_app_name.my_new_module ,那么我应该可以做到这一点,并且让所有的日志logging都转到文件日志。 # In file './my_app_name/my_new_module.py' import logging logger = logging.getLogger('my_app_name.my_new_module') logger.debug('Hello logs!') # <– This should get logged to my RotatingFileHandler that I setup in `settings.py`!
为ModelAdmin类定义list_display数组时,如果给出了一个BooleanField或NullBooleanField ,UI将使用精美的图标而不是列中的True / False文本。 如果给出一个返回一个布尔值的方法,它只是输出True / False。 有没有办法让它使用布尔方法漂亮的图标?