我有一个模型和这样的表格:
class Content(models.Model):
title = models.CharField(_("title"), max_length=16)
category = models.ForeignKey(Category, verbose_name = _('category'))
class ContentForm(forms.ModelForm):
class Meta:
model=Content
fields = ('title', 'category', )
Run Code Online (Sandbox Code Playgroud)
我想在表单中有f_category字段的名称(当然模型中字段的名称是留下来的category).是否可以这样做,而不必手动构建整个表单(这很难,因为该字段是一个ForeignKey,必须是一个带有选项列表的选择字段)?
澄清:按名称我的意思是HTML表单代码中的名称: <input type="select" name="f_category" />
结果之间是否存在差异:
MyModel.objects.filter(pk=1)
Run Code Online (Sandbox Code Playgroud)
和
MyModel.objects.get(pk=1)
Run Code Online (Sandbox Code Playgroud)
如果没有区别,为什么.get()方法存在?
我在某处看到过像这样的urls.py结构:
from project.f import SomeClass
urlpatterns = patterns('',
(r'^url/$', SomeClass()),
)
Run Code Online (Sandbox Code Playgroud)
无处http://docs.djangoproject.com/en/dev/topics/http/urls/我可以找出这意味着什么,通常一个条目是这样的:
(r'^url/(?P<some_id>\d+)/$', 'project.views.some_view'),
Run Code Online (Sandbox Code Playgroud)
有人可以解释我是如何只使用SomeClass()吗?
如果SomeClass()构造是无参数的,那么SomeClass()构造可以工作,但是我想在那里有参数,所以我做了这样的事情:
(r'^url/(?P<some_id>\d+)/$', SomeClass()),
Run Code Online (Sandbox Code Playgroud)
并修改了SomeClass,它是:
class SomeClass(OtherClass):
def items(self):
return MyItems.objects.all()
Run Code Online (Sandbox Code Playgroud)
至:
class SomeClass(OtherClass):
def items(self, some_id):
return MyItems.objects.filter(pk=some_id)
Run Code Online (Sandbox Code Playgroud)
现在访问/ url /我得到:
TypeError at /url/12/
items() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
所以看起来参数不会传递.如果我尝试输入urls.py:
(r'^url/(?P<some_id>\d+)/$', SomeClass(some_id)),
Run Code Online (Sandbox Code Playgroud)
我明白了:
NameError at /url/12/
name 'some_id' is not defined
Run Code Online (Sandbox Code Playgroud)
如何在此设置中制作正确的urlpatterns?
在Django中,我有一个模型,我将有一个字典,其中该模型中的对象的id为键,权重为值.我想在order_by中使用这些权重:
MyModel.objects.filter(title__icontains=query).order_by( 'value_from_the_dictionary' )
Run Code Online (Sandbox Code Playgroud)
如何使这项工作?
我不能将权重放在模型中,因为它们在每次调用此视图时都会有所不同,我不想将它们保存在任何地方,它们将在URL的每个查询中计算.