models.py
class MyModel(models.Model):
company = models.ForeignKey(Company, db_column="company", default=None, on_delete=models.DO_NOTHING, null=True)
forms.py
class myform(forms.ModelForm):
company = forms.CharField(label="company",
widget=forms.TextInput(attrs={'readonly':True}),
required=True)
admin.py
class MymodelAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
url = request.get_full_path()
if obj:
self.form = MyModelUpdateForm
else:
self.form = MyModelCreateForm
ModelForm = super(MyModeladmin, self).get_form(request, obj, **kwargs)
class ModelFormMetaClass(ModelForm):
def __new__(cls, *args, **kwargs):
kwargs['request'] = request
return ModelForm(*args, **kwargs)
return ModelFormMetaClass
ValueError: Cannot assign "'pgEmlMkkkCWnJ1I'": "Mymodel.company" must be a "Company" instance.