Best Python code snippet using autotest_python
model_logic.py
Source:model_logic.py  
...196        # look for a field on related_model relating to this model197        for field in related_model._meta.fields:198            if self._is_relation_to(field, self.model):199                # many-to-one200                return self._many_to_one_pivot(base_objects_by_id,201                                               related_model, field)202        for field in related_model._meta.many_to_many:203            if self._is_relation_to(field, self.model):204                # many-to-many205                return self._many_to_many_pivot(206                    base_objects_by_id, related_model, field.m2m_db_table(),207                    field.m2m_reverse_name(), field.m2m_column_name())208        # maybe this model has the many-to-many field209        for field in self.model._meta.many_to_many:210            if self._is_relation_to(field, related_model):211                return self._many_to_many_pivot(212                    base_objects_by_id, related_model, field.m2m_db_table(),213                    field.m2m_column_name(), field.m2m_reverse_name())214        raise ValueError('%s has no relation to %s' %215                         (related_model, self.model))216    def _many_to_one_pivot(self, base_objects_by_id, related_model,217                           foreign_key_field):218        """219        @returns a pivot iterator - see _get_pivot_iterator()220        """221        filter_data = {foreign_key_field.name + '__pk__in':222                       base_objects_by_id.keys()}223        for related_object in related_model.objects.filter(**filter_data):224            fresh_base_object = getattr(related_object, foreign_key_field.name)225            # lookup base object in the dict -- we need to return instances from226            # the dict, not fresh instances of the same models227            base_object = base_objects_by_id[fresh_base_object._get_pk_val()]228            yield base_object, related_object229    def _query_pivot_table(self, base_objects_by_id, pivot_table,230                           pivot_from_field, pivot_to_field):...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
