3
インラインが添付されているものに応じて、汎用インラインで見つかるFKフィールドの選択を制限しようとしています。インラインが関連しているオブジェクトに依存する汎用インラインFKフィールドへの選択の制限
たとえば、Article
と編集された一般的な関係Publishing
を持つArticle
があります。
私はPublishingInlineが現在、アーティクルにインラインで編集中であることを「知って」いるようにしたいと考えています。利用可能なPublishingTypesをcontent_type
Article
に制限しています。
class PublishingInlineForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
try:
data = kwargs.pop("data", {})
if kwargs["instance"]:
publishing_type_kwargs = {
'content_type': kwargs["instance"].content_type, }
data["publishing_type"] = PublishingType.objects.filter(**publishing_type_kwargs)
kwargs["data"] = data
except KeyError:
pass
super(PublishingInlineForm, self).__init__(*args, **kwargs)
class PublishingInline(generic.GenericStackedInline):
form = PublishingInlineForm
model = get_model('publishing', 'publishing')
extra = 0
Supurb!あなたが正しいことを見つけると、それはとても簡単です:) – Daryl