Как установить начальные данные для формы добавления экземпляра модели администратора Django?

Как я могу установить начальное значение поля в автоматически сгенерированной форме для добавления экземпляра модели Django до отображения формы? Я использую Джанго 1.3.1.

Моя модель выглядит следующим образом:

class Foo(models.Model):
  title = models.CharField(max_length=50)
  description = models.TextField()

и текущая форма администратора на самом деле не представляет собой ничего особенного

class FooAdmin(admin.ModelAdmin):
  ordering = ('title',)

Когда я использую страницу администратора для добавления нового экземпляра Foo, я получаю красивую форму с пустыми полями для заголовка и описания. Я хотел бы, чтобы поле описания было установлено с помощью шаблона, который я получаю, вызывая функцию.

Моя текущая лучшая попытка получить это :

def get_default_content():
  return 'this is a template for a Foo description'

class FooAdminForm(django.forms.ModelForm):

  class Meta:
      model = Foo

  def __init__(self, *args, **kwargs):
      kwargs['initial'].update({'description': get_default_content()})
      super(FooAdminForm, self).__init__(self, *args, **kwargs)

class FooAdmin(admin.ModelAdmin):
  ordering = ('title',)
  form = FooAdminForm

, но если я попробую это, я получу эту ошибку Django:

AttributeError at /admin/bar/foo/add/ 
   'FooForm' object has no attribute 'get'
Request Method: GET
Request URL:    http://localhost:8000/admin/bar/foo/add/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value:    'FooForm' object has no attribute 'get'
Exception Location: /www/django-site/venv/lib/python2.6/site-packages/django/forms/widgets.py in value_from_datadict, line 178

Я не знаю, что здесь не так, и что я должен сделать, чтобы это заработало. Что мне также кажется странным в этой ошибке (, кроме того факта, что я ее вообще вижу), так это то, что в моем коде вообще нет FooForm?

19
задан Jonathan Leffler 23 September 2012 в 15:54
поделиться