Django, adding excluded properties to the submitted modelform -
i've modelform , excluded 2 fields, create_date , created_by fields. "not null" error when using save() method because created_by empty.
i've tried add user id form before save() method this: form.cleaned_data['created_by'] = 1 , form.cleaned_data['created_by_id'] = 1. none of works.
can explain me how can 'add' additional stuff submitted modelform save?
class location(models.model): name = models.charfield(max_length = 100) created_by = models.foreignkey(user) create_date = models.datetimefield(auto_now=true) class locationform(forms.modelform): class meta: model = location exclude = ('created_by', 'create_date', )
since have excluded fields created_by , create_date in form, trying assign them through form.cleaned_data not make sense.
here can do:
if have view, can use form.save(commit=false) , set value of created_by
def my_view(request): if request.method == "post": form = locationform(request.post) if form.is_valid(): obj = form.save(commit=false) obj.created_by = request.user obj.save() ... ... `
if using admin, can override save_model() method desired result.
class locationadmin(admin.modeladmin): def save_model(self, request, obj, form, change): obj.created_by = request.user obj.save()
Comments
Post a Comment