Note that there are some explanatory texts on larger screens.

plurals
  1. PODjango: Signal callback function missing foreign on model
    text
    copied!<p>Hey, Im trying to get the signal pre_save to work on my model but there seems to be some problem with a foreign key or something. My model is like this:</p> <pre><code>class BlogEntry(models.Model): headline = models.CharField(max_length=100) content = models.CharField(max_length=2000) written_by = models.ForeignKey(User) date = models.DateTimeField(auto_now=True) project = models.ForeignKey(Project) </code></pre> <p>And here is where the form is processed and saved:</p> <pre><code> def form_valid(self, blogform): # post a blogentry blog_entry = blogform.save(commit=False) blog_entry.written_by = self.request.user blog_entry.project = blog_entry.project #debugging shows that this is a valid instance of the Project model blog_entry.save() return TemplateResponseMixin.render_to_response(self, self.get_context_data()) </code></pre> <p>And here's my signal reciever function</p> <pre><code>@receiver(post_save, sender=BlogEntry) def project_blog_entry_signal(sender, **kwargs): log = Log() log.project = sender.project.field log.content_type = Log.content_new_blogentry log.save() </code></pre> <p>And here's the exception:</p> <blockquote> <blockquote> <p>Cannot assign "django.db.models.fields.related.ForeignKey object at 0x21eef86c": "Log.project" must be a "Project" instance.</p> </blockquote> <p>@the line ---> log.project = sender.project.field in</p> <blockquote> <p>project_blog_entry_signal() function</p> </blockquote> </blockquote> <p>The sender object doesn't seem to pass the project as a model instance but rather as a Foreign key instance. Why is that? </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload