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