Django admin TabularInline

Все мои модели хранятся в специальной базе данных. Django admin используется в качестве "backoffice".

Поле id установлено во всех моих моделях :

class MyModel(models.Model):
    id = models.IntegerField(primary_key=True)

Поэтому для своих моделей я переопределяю метод сохранения, чтобы использовать seq и autoincrement :

def save(self, *args, **kwargs):
    if not self.id :
        self.id = getNextId("__mymodel_id_seq")
    super(MyModel, self).save(*args, **kwargs)

TabularInLine :

class MyModelAdminInline(admin.TabularInline):
    model = MyModel
    fields = ['id', 'titre_classe', 'valeur_texte', 'valeur_min', 'valeur_max', 'id_style', 'ordre', 'rayon', 'style_css',]

и используется в другом админе :

MySecondModelAdmin.inlines = [MyModelAdminInline,]

В TabularInline кажется, что я должен установить id вручную.

  • Если оставить пустым : я получаю ошибку валидации и поле отображается красным цветом красным
  • Если установлено readonly : я получаю то же самое
  • Если не отображается в инлайне : тоже ошибка...
Вернуться на верх