我在我的网站中使用Django表单,并希望控制字段的顺序。 以下是我如何定义我的表单: class edit_form(forms.Form): summary = forms.CharField() description = forms.CharField(widget=forms.TextArea) class create_form(edit_form): name = forms.CharField() 该名称是不可变的,只应在实体创build时列出。 我使用inheritance来增加一致性和DRY原则。 事实上完全可以预见的是,没有错误的是,名称字段在view / html中最后列出,但是我希望名称字段位于摘要和描述之上。 我意识到,我可以通过将摘要和描述复制到create_form中,并松开inheritance来轻松修复它,但是我想知道这是否可能。 为什么? 想象一下,在edit_form中有100个字段,并且在create_form的顶部必须添加10个字段 – 复制和维护这两个表单看起来并不那么性感。 (这不是我的情况,我只是做一个例子) 那么,我该如何重写这个行为呢? 编辑: 显然没有经过讨厌的黑客(摆弄.field属性)没有正确的方法来做到这一点。 .field属性是一个SortedDict(Django的内部数据结构之一),它不提供任何重新sorting键值对的方法。 它确实提供了一种在给定索引处插入项目的方法,但是这会将项目从类成员移动到构造器中。 这个方法可以工作,但是使代码更不可读。 我认为唯一的另一种方式是修改框架本身,这在大多数情况下是不太理想的。 总之,代码会变成这样的: class edit_form(forms.Form): summary = forms.CharField() description = forms.CharField(widget=forms.TextArea) class create_form(edit_form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields.insert(0,'name',forms.CharField()) 那让我闭嘴:)
在这个Django的示例tutotrial在这里: http ://lightbird.net/dbe/todo_list.html 教程说: “这改变了我们的表格布局,我们不得不要求Django重置和重新创build表格: manage.py reset todo; manage.py syncdb manage.py reset todo; manage.py syncdb “ 但是,当我运行manage.py reset todo ,我得到的错误: $ python manage.py reset todo – Unknown command: 'reset' 这是因为我使用sqlite3而不是postgresql? 有人可以告诉我什么命令是重置数据库? 命令: python manage.py sqlclear todo返回错误: $ python manage.py sqlclear todo CommandError: App with label todo could not be found. Are you sure your INSTALLED_APPS […]
从string中去除所有html / javascript最简单的方法是什么?
我正在尝试从Django 1.6升级到1.7。 我得到以下错误: [Thu Oct 09 14:16:41 2014] [error] [client 95.79.172.156] mod_wsgi (pid=14523): Exception occurred processing WSGI script '/home/users1/k/kisvadim/domains/mathtasks.org/django.wsgi'. [Thu Oct 09 14:16:41 2014] [error] [client 95.79.172.156] Traceback (most recent call last): [Thu Oct 09 14:16:41 2014] [error] [client 95.79.172.156] File "/home/users1/k/kisvadim/virtualenv/PythonEnv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__ [Thu Oct 09 14:16:41 2014] [error] [client 95.79.172.156] response […]
如果你是从谷歌来到这里寻找模型的话,跳过我的问题,然后跳到第一个答案。 我的问题只会让你困惑。 在Django中,是否有一个好的方法将整个Model的对象集合成一个单独的字典? 我的意思是,像这样: class DictModel(models.Model): key = models.CharField(20) value = models.CharField(200) DictModel.objects.all().to_dict() …结果是一个由模型中的logging组成的键/值对的字典? 有没有人认为这对他们有用? 谢谢。 更新 我只是想补充说的是,我的最终目标是能够在模板中做一个简单的variables查找。 就像是: {{ DictModel.exampleKey }} 由于DictModel.objects.get(key__exact = exampleKey).value的结果 总的来说,尽pipe如此,你们真的让我感到惊讶,因为你们的回答是多么有帮助,以及接近它的方式有多不同。 非常感谢。 更新2011年10月:这个问题是最好的结果,如果你谷歌“django model_to_dict”,这实际上是非常糟糕的,因为它解决了一个不同于我问的问题。 我想要的是能够将查询集中的所有实例映射到指定模型字段作为关键字的单个字典中。 另一方面,model_to_dict将单个模型实例转换为字典。 现在,我当时的需求相当具体,可能非常罕见(我甚至不记得我需要的项目,或者为什么)。 所以我会很惊讶,任何正在寻找关于model_to_dict的信息的人都会发现我的问题实际上是有用的。 抱歉。 model_to_dict似乎是比我更常见的用例。 2011年12月更新: 我改变了标题,希望更好地反映我的原意。
我一直在努力select一种用Django创buildRESTful API的方法。 我所尝试的方法似乎都不是“银”子弹。 来自http://fi.am的 WAPI可能是最接近我想要完成的,但是我不确定在真正的RESTful API中是否可以接受资源标识符参数在查询string中而不是在“干净的”URL格式。 任何修改WAPI的RestBinding.PATTERNbuild议“清理”的url? 我探索的另一个select是Django的rest接口。 然而,这个框架似乎违反了我所需要的最重要的部分之一,那就是要包含整个资源的URL来引用其他资源(参见http://jacobian.org/writing/rest-worst-practices/链接)。 最后的select是使用django-multiresponse,基本上这样做很长。 请给我最好的build议,尤其是那些处理这个决定的人。
我正在设置Djangopipe理员以下模型: class Quote(models.Model): author = models.CharField(max_length=100) quote = models.CharField(max_length=1000) tags = models.ManyToManyField('Tag') class Tag(models.Model): name = models.CharField(max_length=100) 用下面的代码: class TagInline(admin.TabularInline): model = Tag class QuoteAdmin(admin.ModelAdmin): list_display = ('author', 'quote') inlines = (TagInline,) class TagAdmin(admin.ModelAdmin): pass admin.site.register(Quote, QuoteAdmin) admin.site.register(Tag, TagAdmin) 当试图查看pipe理页面添加一个Quote ,页面显示错误说<class 'quotes.models.Tag'> has no ForeignKey to <class 'quotes.models.Quote'> 。 这在我添加内联之前没有发生。 有什么问题? 如何正确添加Tag作为内联? (我花了20分钟寻找一个答案,我发现了类似的问题,但他们的答案都没有为我工作。)
我正在尝试使用比较运算符将当前date和时间与模型中指定的date和时间进行比较: if challenge.datetime_start <= datetime.now() <= challenge.datetime_end: 脚本错误与: TypeError: can't compare offset-naive and offset-aware datetimes 模型看起来像这样: class Fundraising_Challenge(models.Model): name = models.CharField(max_length=100) datetime_start = models.DateTimeField() datetime_end = models.DateTimeField() 我也有django使用区域date和时间。 我无法find的是django用于DateTimeField()的格式。 这是天真的还是意识到的? 如何获取datetime.now()来识别区域date?
有人可以解释一下Django和Model View Controller模式之间的区别吗? 从function上来说,我们可以从这些差异中得到什么?也就是说,将Django与Ruby on Rails比较起来有什么不同?
在pipe理员中,我想在修改对象时禁用一个字段,但在添加新对象时使其成为必需。 什么Django的方式去这个?