Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Дополнительные поля в админке без записи в БД [RSS Feed]

#1 Дек. 23, 2011 06:01:05

py
От:
Зарегистрирован: 2011-02-27
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Дополнительные поля в админке без записи в БД

Добрый день!

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

# 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)
Спасибо!



Отредактировано (Дек. 23, 2011 06:01:54)

Офлайн

#2 Дек. 23, 2011 16:27:37

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

Дополнительные поля в админке без записи в БД

Если я вас правильно понял, то можно переопределить метод 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



Отредактировано (Дек. 23, 2011 16:28:20)

Офлайн

#3 Дек. 23, 2011 20:31:45

py
От:
Зарегистрирован: 2011-02-27
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Дополнительные поля в админке без записи в БД

magnet85, большое спасибо!
Делал почти так же, но вываливалась ошибка что, мол, у формы нет метода save. Теперь, кажется, понял ошибку.



Отредактировано (Дек. 23, 2011 20:32:44)

Офлайн

  • Начало
  • » Django
  • » Дополнительные поля в админке без записи в БД[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version