ソースを参照

fixed bug signal update_fields

Juan Carlos 5 年 前
コミット
6f5fa37bd0
3 ファイル変更31 行追加28 行削除
  1. 2 2
      marktplatz/models.py
  2. 27 26
      marktplatz/signals.py
  3. 2 0
      marktplatz/views.py

+ 2 - 2
marktplatz/models.py

@@ -70,9 +70,9 @@ class Product(models.Model):
 
         super(Product, self).__init__(*args, **kwargs)
 
-    def save(self, update_fields=None,  *args, **kwargs):
+    # def save(self, update_fields=None,  *args, **kwargs):
         #https://stackoverflow.com/questions/1355150/when-saving-how-can-you-check-if-a-field-has-changed
-        super().save( update_fields=update_fields, *args, **kwargs)  # Call the "real" save() method.
+        # super().save( update_fields=update_fields, *args, **kwargs)  # Call the "real" save() method.
 
 
     STATUS = [

+ 27 - 26
marktplatz/signals.py

@@ -15,29 +15,30 @@ from .models import *
 @receiver(post_save, sender=Product)
 @receiver(post_save, sender=Wohnprojekt)
 def search_agent(sender, instance, update_fields=None, **kwargs):
-
-    if 'frei' in update_fields:
-        if instance.frei == 'JAJA' :
-            for agent in SearchAgent.objects.all():
-                for agentOrt in agent.ort:
-                    if agentOrt == instance.ort:
-
-                        context = {}
-                        context['product'] = model_to_dict ( instance )
-                        context['agent']   = model_to_dict ( agent )
-
-                        context['product']['status']  =  instance.get_status_display()
-                        context['product']['ort']     =  instance.get_ort_display()
-                        context['agent']['delete_url']= instance.current_uri + reverse(  'search-agent-delete' , kwargs={ 'pk': agent.pk, 'hash': agent.hash }   )
-
-                        context['recipient'] = [ agent.email, ]
-                        context['msg_subject' ] = ('Gemeinschaffen - ' + instance.name )
-
-                        mail.send(
-                            context['recipient'],
-                            config.EMAIL_NOREPLY,
-                            context = context,
-                            template='generic',
-                            headers={  'Reply-To': agent.email },
-                            priority='now',
-                        )
+    print("signal called")
+    if update_fields is not None:
+        if 'frei' in update_fields:
+            if instance.frei == 'JAJA' :
+                for agent in SearchAgent.objects.all():
+                    for agentOrt in agent.ort:
+                        if agentOrt == instance.ort:
+
+                            context = {}
+                            context['product'] = model_to_dict ( instance )
+                            context['agent']   = model_to_dict ( agent )
+
+                            context['product']['status']  =  instance.get_status_display()
+                            context['product']['ort']     =  instance.get_ort_display()
+                            context['agent']['delete_url']= instance.current_uri + reverse(  'search-agent-delete' , kwargs={ 'pk': agent.pk, 'hash': agent.hash }   )
+
+                            context['recipient'] = [ agent.email, ]
+                            context['msg_subject' ] = ('Gemeinschaffen - ' + instance.name )
+
+                            mail.send(
+                                context['recipient'],
+                                config.EMAIL_NOREPLY,
+                                context = context,
+                                template='generic',
+                                headers={  'Reply-To': agent.email },
+                                priority='now',
+                            )

+ 2 - 0
marktplatz/views.py

@@ -669,7 +669,9 @@ class EditView(LoginRequiredMixin, FormView):
                 product =  product_f.save( commit=False )
                 update_fields = product_f.changed_data
                 product.current_uri = request.build_absolute_uri( '/' ).rstrip('/')
+
                 product.save( update_fields=update_fields )
+                # product.save( )
 
             if 'addImage' in request.POST:
                 return HttpResponseRedirect(reverse('add-Image', kwargs={'pk': pk}))