django admin inlines, a different kind -


class parent(models.model):   auto_inline_data = models.booleanfield(default=false)  class child(models.model):   field1 = models.charfield()   field2 = models.charfield() 

if auto_inline_data = true need delete old entries , enter new entries based on calculation. have done : in clean method of baseinlineformset check auto_inline_data , if true delete old rows , create new rows. in save_formset(self, request, form, formset, change) if auto_inline_data true return without saving form.

relevant codes :

class childinlineformset(baseinlineformset):     def clean(self):         super(childinlineformset,self).clean()         if any(self.errors):             return         if parent.auto_inline_data:             child.objects.filter(fk=parent).delete()             child.objects.create(*args, **kwargs)             child.objects.create(*args, **kwargs)  in admin.py class parentadmin(admin.modeladmin):     def save_formset(self, request, form, formset, change):         if formset.model._meta.db_table == 'child':             if formset.data['auto_inline_data']:                 return 

while saving when old data exists , auto_inline_data true error

exception value:'childformformset' object has no attribute 'new_objects' exception location: python2.7/site-packages/django/contrib/admin/options.py in construct_change_message, line 688 

is there other way achieve objective or code needs modifications. in advance.


Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -