django admin save_model not saving model changes
django, django-1.5, django-admin, django-modeladmin, python
Solution
you have to call:
obj.subscriptionInfo.save()
as it's on a separate model, it will look something like this:
def save_model(self, request, obj, form, change):
#SUCCESS ACTIONS
obj.subscriptionInfo.paid = 1
obj.subscriptionInfo.save()
obj.save()
Problem
This is my admin.py: ``` class TransactionInfoAdmin(admin.ModelAdmin): search_fields=['transactionId','subscriptionInfo__customerNumber'] save_on_top = False def has_add_permission(self,request): return False def has_delete_permission(self, request, obj=None): return False def get_readonly_fields(self, request, obj=None): if obj: return self.readonly_fields + ('subscriptionInfo','transactionId','authorizationId','responseCode','operation','batchNumber','merchantId') return self.readonly_fields def save_model(self, request, obj, form, change): #SUCCESS ACTIONS obj.subscriptionInfo.paid = 1 obj.save() pass ``` When I am saving the `obj.subscriptionInfo.paid = 1` its not updating the data row, any ideas why? NOTE: subscriptionInfo is foreign key in the above model TransactionInfo. -------------------------- UPDATE -------------------------- My model.py ``` class SubscriptionInfo(models.Model): subscriptionId = models.CharField(max_length=50) customerNumber = models.IntegerField() subscriptionType = models.CharField(max_length=50, default="basic") currency = models.CharField(max_length=50, default="NOK") paid = models.IntegerField(default=0) class Meta: verbose_name = "Subscription Information" verbose_name_plural = "Subscription Information" def __unicode__(self): return u'%s' % self.customerNumber class TransactionInfo(models.Model): subscriptionInfo = models.ForeignKey(SubscriptionInfo, db_column='f') authorizationId = models.IntegerField() transactionId = models.TextField() batchNumber = models.IntegerField() merchantId = models.IntegerField() operation = models.CharField(max_length=50) responseCode = models.CharField(max_length=50) paidDate = models.DateField(_("Date"), default=datetime.date.today) class Meta: verbose_name = "Transaction Information" verbose_name_plural = "Transaction Information" def __unicode__(self): return u'Transaction : %s' % self.pk ``` Anyone?