I have a ModelForm class where I want to exclude one of the ( language ) fields from the form and add it programmatically. I tried adding a language to a clean method, but got IntegrityError ( "Column 'language_id' cannot be null" ). I assume that this is due to the fact that any data for language returned from clean() will be ignored, since it should be excluded in the court. I use the form in the ModelAdmin class. I was not able to find a way to handle this, so any tips or tricks would be much appreciated.
from django import forms from myapp import models from django.contrib import admin class DefaultLanguagePageForm(forms.ModelForm): def clean(self): cleaned_data = super(DefaultLanguagePageForm, self).clean() english = models.Language.objects.get(code="en") cleaned_data['language'] = english return cleaned_data class Meta: model = models.Page exclude = ("language",) class PageAdmin(admin.ModelAdmin): form = DefaultLanguagePageForm
source share