Python Forum
magic related field in Django model
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
magic related field in Django model
#1
Hello

I have a Django model class as:

from django.db import models class DeliveryUpdate(models.Model): delivery_id = models.CharField(max_length=32, blank=False, unique=True) field_updates = JSONField() @property def delivery_address(self): return self.delivery_address_ref @delivery_address.setter def delivery_address(self, value): # Line 15 print ("At the setter for delivery_address") #To check if this function is called self.delivery_address_ref = value

The app runs under docker. After data was populated by some csv files, the table deliveryupdate is created with fields delivery_id and field_updates (there is no delivery_address field in this table)

In a utils.py code, I saw there is the codes to return a delivery_address as:

delivery_id = "xzy" delivery_update = DeliveryUpdate.objects.get(delivery_id=delivery_id) delivery_address = delivery_update.delivery_address #line 27 print (str(delivery_address)) # I could see a valid delivery_address here
I do not understand here is how the value for delivery_update.delivery_address is returned (line 27) when the setter function is NOT called (eg: line #15 delivery_address(self, value)). In another word, I could not find the printout string "At the setter for delivery_address".

Look around, I could see a related class as:

class DeliveryAddress(models.Model): ... delivery_update = models.OneToOneField( 'DeliveryUpdate', db_column='delivery_update', to_field='delivery_id', related_name='delivery_address_ref', on_delete=models.CASCADE, max_length=32 ) ... 
I also saw the table deliveryaddress is created.

I am new to Python and Django, could you please explain why delivery_address is returned when setter function is not called. Some magic things happen here ???

Many thanks
Reply
#2
I think I found it. DeliveryUpdate object can have a ref of DeliveryAddress
Thanks
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  model.fit and model.predict errors hatflyer 6 6,907 Nov-10-2023, 01:39 AM
Last Post: hatflyer
  Django: Adding Row Data To Existing Model Instance Question/Problem. Steven_Pinkerton 1 2,315 Aug-09-2022, 10:46 AM
Last Post: Addweb
  What happens line by line after I register a model in django Novichok 1 2,138 Apr-03-2022, 03:05 PM
Last Post: sastonrobert
  Need a little help with numpy array magic. pmf71 0 2,107 Dec-01-2021, 02:51 AM
Last Post: pmf71
  FileNotFoundError: [Errno 2] No such file or directory: 'model/doc2vec.model/Articles Anldra12 10 11,419 Jun-11-2021, 04:48 PM
Last Post: snippsat
  Although this is a talib related Q it's mostly related to python module installing.. Evalias123 4 10,399 Jan-10-2021, 11:39 PM
Last Post: Evalias123
  Magic Method Arithmetic Operators ClownPrinceOfCrime 3 3,855 Jan-10-2021, 03:24 PM
Last Post: ndc85430
  Bug ? when dataclass field name == field type Cyril 0 2,476 Oct-22-2020, 03:26 AM
Last Post: Cyril
  How to eliminate magic squares formed by the same numbers, but permuted frame 7 5,824 May-09-2019, 11:28 AM
Last Post: frame
  Magic method __str__ dan789 16 13,139 Dec-23-2018, 03:59 PM
Last Post: ichabod801

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.