2012-06-27 20 views

回答

2

检查控件django.contrib.admin.widgets.RelatedFieldWidgetWrapper。它是Django Admin用来添加功能性'+'标记的小部件,here
为了在自定义表单中使用小部件,您需要提供服务于Wheel的添加页面的参数admin_site

+0

嘿 - 愚蠢的问题。我从哪里得到'admin_site'? – Neal

+0

@Neal它的[admin.site'通常](https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.AdminSite),经常在你的管理员中看到.py'文件,如果你还没有定制'AdminSite' – okm

0

默认情况下,只有有田 “编辑= true” 会被添加到管理页面:

ModelAdmin.fields

models.py

class Wheel(models.Model): 
    wheel = models.CharField(max_length=20, editable=True) 

class Vehicle(models.Model): 
    wheel = models.ForeignKey(Wheel, editable=True) 
+0

中找到自定义窗口小部件封装以及完整示例谢谢!但是如果我想在管理员表单之外执行此操作呢?那可能吗? –

+0

这不是管理员表单。这是你的模型定义 – jdi

+0

是的,那么如何在我的自定义表单上显示绿色加号? –

5

如果您要在管理部分之外实现表单,则需要类似于django.contrib.admin.widgets.RelatedFieldWidgetWrapper的自定义窗口小部件包装。使用示例:

from .models import Owner 
from .widgets import AddAnotherWidgetWrapper # our custom widget wrapper 

class PickOwnerForm(forms.Form): 
    owner = forms.ModelChoiceField(
    queryset=Owner.objects.all().order_by('name'), 
    widget=AddAnotherWidgetWrapper(forms.Select(),Owner,) 
) 

在您的实施中,将“所有者”替换为要链接到的模型。

您可以在 - https://gist.github.com/ebrelsford/5263306

相关问题