장고 관리자의 요청으로 사용자를 얻으려고합니다. 필요한 것은 인라인 양식의 clean()
메소드에서 요청 사용자에게 액세스하는 것입니다. 아래에 설명 된 것과 비슷한 절차를 보통 ModelForm
(예 : 인라인 앱이 아님)으로 완료했으며 성공했습니다. 그러나, 인라인으로 나는 많은 문제가있다.Django Admin에서 인라인 형식으로 요청을 전달 하시겠습니까?
class SaleFormset(BaseInlineFormSet):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(SaleFormset, self).__init__(*args, **kwargs)
def _construct_form(self, i, **kwargs):
kwargs['request'] = self.request
super(SaleFormset, self)._construct_form(i, **kwargs)
class SaleProductItemInlineForm(ModelForm):
"""
Custom form for the Sale Product Item Inline used by the
Sale Admin form.
"""
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(SaleProductItemInlineForm, self).__init__(*args, **kwargs)
class Meta:
model = SaleProductItem
fields = "__all__"
을 그리고 admin.py에, 내가 가진 : 내가 가진
class SaleProductItemInline(admin.TabularInline):
"""
Tabular inline for a SaleProductItem used in the Sale Admin.
"""
model = models.SaleProductItem
form = SaleProductItemInlineForm
formset = SaleFormset
def get_formset(self, request, obj=None, **kwargs):
formset_class = super(SaleProductItemInline, self).get_formset(request, obj, **kwargs)
class Subset(formset_class):
def __new__(cls, *args, **kwargs):
kwargs['request'] = request
return formset_class(*args, **kwargs)
return Subset
그러나 내가 말하는 오류를 받고 있어요을 그 'NoneType' object has no attribute 'media'
때문에이 섹션의 :
@property
def media(self):
# All the forms on a FormSet are the same, so you only need to
# interrogate the first form for media.
if self.forms:
return self.forms[0].media
()'당신은 확실히 change_view()' – ckot
'에 전달하는'object_id'에 액세스 할 수있을 것'add_view()'해야 'add_view()'를 호출하십시오. 나는 그것을 고쳤다. 감사합니다 –
이것을 달성하기 위해 그런 고약하고 복잡한 작업을 상상할 수 없다 ... –