Я пытаюсь ограничить выбор поля FK, найденного в общей строке, в зависимости от того, к чему присоединена строка.
Например, у меня есть Article
, с родовым отношением Publishing
, отредактировано inline с Article
.
. Я бы хотел, чтобы PublishingInline каким-то образом «знал», что он в настоящее время редактируется inline для статьи, и ограничивает доступные 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