|
9 | 9 | from django.contrib import admin, messages |
10 | 10 | from django.contrib.contenttypes.forms import BaseGenericInlineFormSet |
11 | 11 | from django.contrib.contenttypes.models import ContentType |
12 | | -from django.core.exceptions import ImproperlyConfigured |
| 12 | +from django.core.exceptions import ImproperlyConfigured, FieldDoesNotExist |
13 | 13 | from django.core.paginator import EmptyPage |
14 | 14 | from django.db import router, transaction, models |
15 | 15 | from django.db.models import OrderBy |
@@ -503,10 +503,15 @@ def save_new(self, form, commit=True): |
503 | 503 | """ |
504 | 504 | obj = super().save_new(form, commit=False) |
505 | 505 |
|
506 | | - order_field_value = getattr(obj, self.default_order_field, None) |
507 | | - if order_field_value is None or order_field_value <= 0: |
508 | | - max_order = self.get_max_order() |
509 | | - setattr(obj, self.default_order_field, max_order + 1) |
| 506 | + try: |
| 507 | + self.model._meta.get_field(self.default_order_field) |
| 508 | + except FieldDoesNotExist: |
| 509 | + pass |
| 510 | + else: |
| 511 | + order_field_value = getattr(obj, self.default_order_field) |
| 512 | + if order_field_value is None or order_field_value <= 0: |
| 513 | + max_order = self.get_max_order() |
| 514 | + setattr(obj, self.default_order_field, max_order + 1) |
510 | 515 | if commit: |
511 | 516 | obj.save() |
512 | 517 | # form.save_m2m() can be called via the formset later on |
|
0 commit comments