Przeglądaj źródła

Исправлена ошибка при добавлении статей затрат

Anastasia 10 lat temu
rodzic
commit
a4827ce05f
2 zmienionych plików z 8 dodań i 6 usunięć
  1. 1 2
      asuzr/forms.py
  2. 7 4
      asuzr/models.py

+ 1 - 2
asuzr/forms.py

@@ -2,9 +2,8 @@
 from django import forms
 from django.forms import ModelForm
 from datetime import date
-from django.contrib.admin.widgets import AdminDateWidget, FilteredSelectMultiple, RelatedFieldWidgetWrapper
+from django.contrib.admin.widgets import AdminDateWidget
 from django.forms.extras.widgets import Select
-from django.db.models.fields.related import ManyToOneRel
 from asuzr.models import *
 from django.core.urlresolvers import reverse
 from django.utils.safestring import mark_safe

+ 7 - 4
asuzr/models.py

@@ -7,12 +7,13 @@ from datetime import date, timedelta
 from django.utils import dateformat
 from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed
 from django.contrib.sessions.models import Session
-from django.db.models.signals import post_save, post_delete
+from django.db.models.signals import pre_save, post_save, post_delete
 from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION
 from django.contrib.contenttypes.models import ContentType
 from django.dispatch import receiver
 from gadjo.requestprovider.signals import get_request
 
+
 #Изделия
 class Product(models.Model):
   name = models.CharField(max_length=150)
@@ -113,11 +114,13 @@ class Order(models.Model):
     
     return need_color
   
-  def save(self, *args, **kwargs):
-    super(Order, self).save(*args, **kwargs)
+@receiver(post_save, sender = Order)
+def add_default_cost_items(sender, instance, *args, **kwargs):
+  order_cost_items = instance.cost_items.all()
+  if len(order_cost_items)==0:
     cost_items = CostItem.objects.filter(default_item = True)
     for ci in cost_items:
-      new_order_cost = OrderCosts(order = self, cost_item = ci, value = 0, formula = '')
+      new_order_cost = OrderCosts(order = instance, cost_item = ci, value = 0, formula = '')
       new_order_cost.save()
     
 #Эскизы