Django: How to create a record in different app/model post saving the data in current model -


following apps , respective models:

project name: django03

app: home

home/model.py

from __future__ import unicode_literals  django.db import models django.conf import settings # create models here.  user = settings.auth_user_model  home_type = (     ('1','1'),     ('2','2'),     ('3','3'), )   class home(models.model):     home_owner = models.foreignkey(user,null=false, verbose_name='owner')     hometype= models.charfield(max_length=100, null=false, default=1,  choices=home_type, verbose_name='home type')     licenseid= models.charfield(max_length=200, null=false, unique=true,  verbose_name='license id') archive = models.booleanfield(default=false)  def __str__(self):     return self.licenseid 

app: furniture furniture/model.py

# -*- coding: utf-8 -*- __future__ import unicode_literals django.conf import settings django.db import models  # create models here.  user = settings.auth_user_model  furniture_data_import_source= (     ('0', '0'),     ('1', '1'),     ('2', '2'), )  class furniture(models.model):     furniture_owner = models.foreignkey(user, verbose_name='user')     furniture_imported_via = models.charfield(max_length=200, default="0", null=false, choices=furniture_data_import_source, verbose_name='source of import')     furniture_title = models.charfield(max_length=100, null=false, verbose_name='furniture title')     furniture_description = models.textfield(max_length=250, verbose_name='furniture description')     archive = models.booleanfield(default=false)      def __str__(self):         return self.furniture_title 

app:mappings mappings/model.py

from __future__ import unicode_literals  django.db import models home.models import home furniture.models import furniture  class homefurnituremapping(models.model):     home = models.onetoonefield(         home,         on_delete=models.cascade,         null=false,         unique=true,         verbose_name='home'     )     furniture = models.onetoonefield(         furniture,         on_delete=models.cascade,         null=false,         unique=true,         verbose_name='furniture'     ) 

app: furnitureupdates furnitureupdates/model.py

# -*- coding: utf-8 -*- __future__ import unicode_literals  django.db import models mappings.models import homefurnituremapping # create models here.  class furnitureupdate(models.model):     mapping_id = models.onetoonefield(         homefurnituremapping,         on_delete=models.cascade,         null=false,         unique=true,         verbose_name='mapping id'          )     update_status = models.integerfield(null=false, default=1)     update_date = models.datefield(auto_now_add=true, null=false, verbose_name='update date')     update_time = models.timefield(auto_now_add=true, null=false, verbose_name='update time')      def __str__(self):         return self.mapping_id 

my questions are:

  1. how create/update record in "furnitureupdate" table after save/update "furniture" form admin panel?

  2. how create/update record in "furnitureupdate" table after save/update "homefurnituremapping" form admin panel

  3. and can functionality update "furnitureupdate" table retained if use django-excel bulk data upload packages?

update:

i tried django signals, adding method in "homefurnituremapping" class:

# method updating  def update_on_home_furniture_mapping(sender, instance, **kwargs):     print ('entered')     print(instance.id)     m_id = instance.id     updates.models import furnitureupdate     furnitureupdate.objects.create(mapping_id = m_id)     print ('furniture update created!')      # register signal post_save.connect(update_on_tag_product_mapping, sender= homefurnituremapping) 

but following error on form submission in admin panel.

error: "furnitureupdate.mapping_id" must "homefurnituremapping" instance. 

your last error fix remove id: replace

furnitureupdate.objects.create(mapping_id = m_id) 

to

furnitureupdate.objects.create(mapping_id = instance) 

by default in db django added _id name of columns, , in case columns inside database looks column_name_id_id double id @ end, if want send foreign key integer need use double _id_id, single _id need send instance.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -