0
InvoiceAdmin 모델에서 ActionAdminInline로 사용되는 ActionAdmin 모델이 있습니다.save_formset 및 save_model의 부모 개체 필드에 액세스
InvoiceModel에서 일부 값을 자동으로 설정하려면 save_formset을 재정의합니다. 각 Action 인스턴스의 값을 설정하는 것은 문제가 없지만 부모 송장 필드를 가져올 수 없습니다.
가 나는 자기 또는 나는 또한 다른 스레드에서 볼 form.project.pk으로 그걸 얻기 위해 노력 self.project.pk해야했다 생각했다.내가받은 오류는 InvoiceAdmin에 해당 필드가 없습니다. 그것은 나에게 의미가있다. self는 InvoiceAdmin 객체이고 Invoice 객체는 아니다. Invoice 객체 필드를 가져 와서 instance.invoice Action과 instance.project를 설정해야한다고 생각합니다.
누군가이 부모 개체 값을 얻는 방법을 알고 있습니까 ???
은 다음과 같습니다class ActionAdmin(admin.ModelAdmin):
...
class ActionInlineForm(ModelForm):
class Meta:
model = Action
fields = ['name','tax', 'price','duration_extern',]
class ActionInline(admin.TabularInline):
model = Action
form = ActionInlineForm
extra = 0
ordering = ('date_finished',)
can_delete=False
readonly_fields = ['non_editable_date_finished','non_editable_duration','get_remove_invoice_pos_link']
class InvoiceAdmin(admin.ModelAdmin):
...
...
...
inlines = [ActionInline,]
...
...
...
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
usr = User.objects.get(id=7)
try:
instance.created_by = instance.created_by
except:
instance.created_by = usr
try:
instance.owner = instance.owner
except:
instance.owner = usr
instance.modified_by = usr
try:
instance.date_created = instance.date_created
except:
instance.date_created = date.today
instance.date_modified = date.today:
### MAN, This WORKS NOW ###
try:
instance.project = instance.project
except:
pr = Project.objects.get(id=instance.invoice.project.id)
instance.project = pr
actstat = ActionStatus.objects.get(id=2)
instance.actionstatus = actstat
try:
instance.actioncategory = instance.actioncategory
except:
cat = ActionCategory.objects.get(id=9)
instance.actioncategory = cat
instance.done = True
instance.billed = True
instance.save()
formset.save_m2m()
이 오류 메시지입니다 : 그것은 자기 객체가 InvoiveAdmin입니다 및 송장하지 않는 것이 문제
AttributeError at /workflow/invoice/21/
...
Exception Type: AttributeError
Exception Value: 'InvoiceAdmin' object has no attribute 'id'
...
Traceback
form <django.forms.models.InvoiceForm object at 0x7f7f7421de10>
instances [<Action: aaaaa>]
self <workflow.admin.InvoiceAdmin object at 0x7f7f7421dad0>
인가? 나는 인스턴스 객체가 Action이고, ActionAdmin이 아니라는 것을 의미합니까?