3

たとえば、次のようなモデルがあります。

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

class Vehicle(models.Model):
    wheel = models.ForeignKey(Wheel)

新しい Vehicle を作成するとき、wheel フィールドの横に緑色のプラス記号を表示して、Wheel の新しいインスタンスを追加できるようにします。私はdjangoが初めてなので、それが可能かどうかわかりません。どんな助けでも大歓迎です!

4

3 に答える 3

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で、カスタム ウィジェット ラッパーと完全な例を見つけることができます。

于 2013-08-21T20:38:02.440 に答える
2

ウィジェットを確認してくださいdjango.contrib.admin.widgets.RelatedFieldWidgetWrapper。これは、Django 管理者が機能的な「+」マークを追加するために使用するウィジェットです。カスタム フォームでウィジェットを使用するには、Wheel の追加ページを
提供する引数を指定する必要があります。admin_site

于 2012-06-27T05:20:17.277 に答える
0

デフォルトでは、「editable=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)
于 2012-06-27T03:12:25.847 に答える