Django : How to associate a user to a created post when post is created through a ModelForm












1














I created a normal Django posts app , which basically create a post and its content.
Now the thing is that I implemented the create post form as a modelform in forms.py .Now if it wasnt a modelform and just a html-form , I would have user request.POST.get('data')
But now when I used



class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = (
'title',
'content',
'image',
)


Model.py



class Post(models.Model):
title = models.CharField(max_length=100)
image = models.ImageField(null=True,blank=True)
content = models.TextField()
user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)


Views.py



def create(request):
form = PostForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect('/home')
return render(request,'create.html',{'form':form})


How can I join a user to a created post










share|improve this question



























    1














    I created a normal Django posts app , which basically create a post and its content.
    Now the thing is that I implemented the create post form as a modelform in forms.py .Now if it wasnt a modelform and just a html-form , I would have user request.POST.get('data')
    But now when I used



    class PostForm(forms.ModelForm):
    class Meta:
    model = Post
    fields = (
    'title',
    'content',
    'image',
    )


    Model.py



    class Post(models.Model):
    title = models.CharField(max_length=100)
    image = models.ImageField(null=True,blank=True)
    content = models.TextField()
    user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)


    Views.py



    def create(request):
    form = PostForm(request.POST or None)
    if form.is_valid():
    instance = form.save(commit=False)
    instance.save()
    return HttpResponseRedirect('/home')
    return render(request,'create.html',{'form':form})


    How can I join a user to a created post










    share|improve this question

























      1












      1








      1


      0





      I created a normal Django posts app , which basically create a post and its content.
      Now the thing is that I implemented the create post form as a modelform in forms.py .Now if it wasnt a modelform and just a html-form , I would have user request.POST.get('data')
      But now when I used



      class PostForm(forms.ModelForm):
      class Meta:
      model = Post
      fields = (
      'title',
      'content',
      'image',
      )


      Model.py



      class Post(models.Model):
      title = models.CharField(max_length=100)
      image = models.ImageField(null=True,blank=True)
      content = models.TextField()
      user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)


      Views.py



      def create(request):
      form = PostForm(request.POST or None)
      if form.is_valid():
      instance = form.save(commit=False)
      instance.save()
      return HttpResponseRedirect('/home')
      return render(request,'create.html',{'form':form})


      How can I join a user to a created post










      share|improve this question













      I created a normal Django posts app , which basically create a post and its content.
      Now the thing is that I implemented the create post form as a modelform in forms.py .Now if it wasnt a modelform and just a html-form , I would have user request.POST.get('data')
      But now when I used



      class PostForm(forms.ModelForm):
      class Meta:
      model = Post
      fields = (
      'title',
      'content',
      'image',
      )


      Model.py



      class Post(models.Model):
      title = models.CharField(max_length=100)
      image = models.ImageField(null=True,blank=True)
      content = models.TextField()
      user = models.ForeignKey(User,on_delete=models.CASCADE,null=True)


      Views.py



      def create(request):
      form = PostForm(request.POST or None)
      if form.is_valid():
      instance = form.save(commit=False)
      instance.save()
      return HttpResponseRedirect('/home')
      return render(request,'create.html',{'form':form})


      How can I join a user to a created post







      python django django-models






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 at 14:42









      Jidnyesh

      75




      75
























          1 Answer
          1






          active

          oldest

          votes


















          2














          You can simply assign the user to the instance in between the two save functions:



          instance = form.save(commit=False)
          instance.user = request.user
          instance.save()





          share|improve this answer





















          • You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
            – Jidnyesh
            Nov 14 at 16:21










          • Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
            – Jidnyesh
            Nov 14 at 16:23











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53283473%2fdjango-how-to-associate-a-user-to-a-created-post-when-post-is-created-through%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2














          You can simply assign the user to the instance in between the two save functions:



          instance = form.save(commit=False)
          instance.user = request.user
          instance.save()





          share|improve this answer





















          • You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
            – Jidnyesh
            Nov 14 at 16:21










          • Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
            – Jidnyesh
            Nov 14 at 16:23
















          2














          You can simply assign the user to the instance in between the two save functions:



          instance = form.save(commit=False)
          instance.user = request.user
          instance.save()





          share|improve this answer





















          • You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
            – Jidnyesh
            Nov 14 at 16:21










          • Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
            – Jidnyesh
            Nov 14 at 16:23














          2












          2








          2






          You can simply assign the user to the instance in between the two save functions:



          instance = form.save(commit=False)
          instance.user = request.user
          instance.save()





          share|improve this answer












          You can simply assign the user to the instance in between the two save functions:



          instance = form.save(commit=False)
          instance.user = request.user
          instance.save()






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 13 at 14:44









          ritlew

          855411




          855411












          • You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
            – Jidnyesh
            Nov 14 at 16:21










          • Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
            – Jidnyesh
            Nov 14 at 16:23


















          • You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
            – Jidnyesh
            Nov 14 at 16:21










          • Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
            – Jidnyesh
            Nov 14 at 16:23
















          You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
          – Jidnyesh
          Nov 14 at 16:21




          You sure? That i dont have to make any changes in forms.py , cause after what you said , it says user is not defined
          – Jidnyesh
          Nov 14 at 16:21












          Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
          – Jidnyesh
          Nov 14 at 16:23




          Actually i also added if user is not None and user.is_active: to avoid anonymous users, then its saying user is not defined
          – Jidnyesh
          Nov 14 at 16:23


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53283473%2fdjango-how-to-associate-a-user-to-a-created-post-when-post-is-created-through%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Guess what letter conforming each word

          Port of Spain

          Run scheduled task as local user group (not BUILTIN)