OLD | NEW |
1 """ | 1 """ |
2 Extensions to Django's model logic. | 2 Extensions to Django's model logic. |
3 """ | 3 """ |
4 | 4 |
5 import re | 5 import re |
6 import django.core.exceptions | 6 import django.core.exceptions |
7 from django.db import models as dbmodels, backend, connection | 7 from django.db import models as dbmodels, backend, connection |
8 from django.db.models.sql import query | 8 from django.db.models.sql import query |
9 import django.db.models.sql.where | 9 import django.db.models.sql.where |
10 from django.utils import datastructures | 10 from django.utils import datastructures |
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 else: | 670 else: |
671 to_val, from_val = choice_data | 671 to_val, from_val = choice_data |
672 if from_val == data[field_name]: | 672 if from_val == data[field_name]: |
673 data[field_name] = to_val | 673 data[field_name] = to_val |
674 break | 674 break |
675 # convert foreign key values | 675 # convert foreign key values |
676 elif field_obj.rel: | 676 elif field_obj.rel: |
677 dest_obj = field_obj.rel.to.smart_get(data[field_name], | 677 dest_obj = field_obj.rel.to.smart_get(data[field_name], |
678 valid_only=False) | 678 valid_only=False) |
679 if to_human_readable: | 679 if to_human_readable: |
680 if dest_obj.name_field is not None: | 680 # parameterized_jobs do not have a name_field |
| 681 if (field_name != 'parameterized_job' and |
| 682 dest_obj.name_field is not None): |
681 data[field_name] = getattr(dest_obj, | 683 data[field_name] = getattr(dest_obj, |
682 dest_obj.name_field) | 684 dest_obj.name_field) |
683 else: | 685 else: |
684 data[field_name] = dest_obj | 686 data[field_name] = dest_obj |
685 | 687 |
686 | 688 |
687 @classmethod | 689 @classmethod |
688 def validate_field_names(cls, data): | 690 def validate_field_names(cls, data): |
689 'Checks for extraneous fields in data.' | 691 'Checks for extraneous fields in data.' |
690 errors = {} | 692 errors = {} |
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 | 1175 |
1174 The exception is that save(force_insert=True) will be allowed, since | 1176 The exception is that save(force_insert=True) will be allowed, since |
1175 that creates a new row. However, the preferred way to make instances of | 1177 that creates a new row. However, the preferred way to make instances of |
1176 these models is through the get_or_create() method. | 1178 these models is through the get_or_create() method. |
1177 """ | 1179 """ |
1178 if not force_insert: | 1180 if not force_insert: |
1179 # Allow a forced insert to happen; if it's a duplicate, the unique | 1181 # Allow a forced insert to happen; if it's a duplicate, the unique |
1180 # constraint will catch it later anyways | 1182 # constraint will catch it later anyways |
1181 raise Exception('ModelWithHash is immutable') | 1183 raise Exception('ModelWithHash is immutable') |
1182 super(ModelWithHash, self).save(force_insert=force_insert, **kwargs) | 1184 super(ModelWithHash, self).save(force_insert=force_insert, **kwargs) |
OLD | NEW |