Найти - Пользователи
Полная версия: Дополнительные поля в админке без записи в БД
Начало » Django » Дополнительные поля в админке без записи в БД
1
py
Добрый день!

Подскажите, пожалуйста, новичку как можно использовать дополнительные поля в админке при сохранении объекта?

# admin.py

from models import Test
from django import forms
from django.contrib import admin
from django.http import QueryDict


class TestAdminForm(forms.ModelForm):
xywh = forms.CharField(required=False)
# поле, значение которого нужно получить при сохранении модели

def __init__(self, *a, **kw):
super(TestAdminForm, self).__init__(*a, **kw)
if a:
for item in a:
if isinstance(item, QueryDict):
self.xywh = item.get('xywh', None)
# тут удалось его отловить, но хотелось бы в методе save модели
break

class Meta:
model = Test


class TestAdmin(admin.ModelAdmin):
form = TestAdminForm


admin.site.register(Test, TestAdmin)
Спасибо!
magnet85
Если я вас правильно понял, то можно переопределить метод save, примерно так:
    def save(self, commit=True):
model = super(TestAdminForm, self).save(commit=False)

model.xywh = self.cleaned_data['xywh']

if commit:
model.save()

return model
py
magnet85, большое спасибо!
Делал почти так же, но вываливалась ошибка что, мол, у формы нет метода save. Теперь, кажется, понял ошибку.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB