в итоге сделал так добавил два доп поля и сделал проверку по пользователю, если пользователь обычный то они автозаполняются(если есть имя и фамилия то ими, если нет то ник), а в админке не заполняются если избраный, то заполнять можешь сам, а админке они отображаются
class BaseRealtyAdmin(admin.ModelAdmin):
inlines = [ RealtyImageInline, get_inline(MyMetadata)]
def get_form(self,request,obj=None,**kwargs):
"""
Динамически создаем форму в зависимости от условий
"""
form = super(BaseRealtyAdmin,self).get_form(request,obj,**kwargs)
user = request.user
if not bool(user.groups.filter(pk=1)):
del form.base_fields['user_name']
del form.base_fields['user_email']
return form
def save_model(self, request, ad, form, change):
user = request.user
if not ad.user:
ad.user=request.user
if not bool(user.groups.filter(pk=1)) and user.is_superuser:
if len(ad.user.first_name.strip()):
ad.user_name=ad.user.first_name+' '+ad.user.last_name
else:
ad.user_name=ad.user.username
ad.user_email=ad.user.email
super(BaseRealtyAdmin, self).save_model(request, ad, form, change)