Ok I managed to remove the compilatore field from the form (this
RowModelAdmin class is used by many Models, all having the compilatore
field)
def get_form(self, request, obj=None, **kwargs):
 form = super(RowModelAdmin, self).get_form(request, obj, **kwargs)
if not request.user.is_superuser:
 del form.base_fields['compilatore']
return form

Now the form validation sequence complains because the compilatore field is
part of the model and thus may not be empty (it's a ForeignKey to
auth.models.User).
I'm trying to override or customize the form.is_valid() method, so then I
will implement a
 def save_model(self, request, obj, form, change):
obj = form.save(commit=False)
 if obj.compilatore == None:
obj.compilatore = request.user.id
 obj.save()

Another way I tried was defining a RowModelForm for the RowModelAdmin
(adding "form = RowModelForm" in RowModelAdmin) class instead of impementing
get_form:
class RowModelForm(forms.ModelForm):
class Meta:
exclude = ('compilatore',)
 def validate(self):
pass
def clean(self):
 pass
def clean_compilatore(self):
return True

But I still get the same error as above.
How can I hook to the validation process to tell it "close an eye on
compilatore being missing (when it is missing), I will add it later?"
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Reply via email to