how to save django object using dictionary?

You could unwrap the dictionary, making its keys and values act like named arguments:

data_dict = {'name': 'foo', 'description': 'bar'}

 # This becomes Poll(name='foo', description='bar')
 p = Poll(**data_dict)
 ...
 p.save()

drmegahertz's solution works if you're creating a new object from scratch. In your example, though, you seem to want to update an existing object. You do this by accessing the __dict__ attribute that every Python object has:

p1.__dict__.update(mydatadict)
p1.save()