when you submited form, form_valid will called in CreateView and give you a
instance of user form submited (form parameter in form_valid function) and
you set user to logged user (self.request.user)

On Wed, Oct 25, 2017 at 7:25 PM, Jack <[email protected]> wrote:

> I tried using FormView but kept running into errors.  I used your second
> response and it worked!  I don't fully understand the code, but it seems to
> work flawlessly.
>
> Thank you so much! I own you a big one.
>
> On Wednesday, October 25, 2017 at 5:57:04 AM UTC-4, k2527806 wrote:
>>
>> that your code :
>> class CreatePost(CreateView):
>>     model = Post
>>
>>     def form_valid(self, form):
>>         form.instance.user = self.request.user
>>         return super(CreatePost, self).form_valid(form)
>>
>> On Wed, Oct 25, 2017 at 1:22 PM, mohammad k <[email protected]> wrote:
>>
>>> use FormView
>>>
>>> https://docs.djangoproject.com/en/1.11/ref/class-based-views
>>> /generic-editing/#formview
>>>
>>> On Wed, Oct 25, 2017 at 1:21 PM, mohammad k <[email protected]> wrote:
>>>
>>>> class Upload(FormView):
>>>>     http_method_names = ['get', 'post']
>>>>     template_name = 'public/upload.html'
>>>>     success_url = reverse_lazy('upload')
>>>>     form_class = UploadForms
>>>>
>>>>     def get(self, request, *args, **kwargs):
>>>>         form = self.form_class(user=request.user)
>>>>         return render(request, self.template_name, {'form': form})
>>>>
>>>>     def post(self, request, *args, **kwargs):
>>>>         form = self.form_class(request.POST, request.FILES,
>>>> user=request.user)
>>>>         if form.is_valid():
>>>>             data = form.save(commit=False)
>>>>             data.user = request.user
>>>>             data.save()
>>>>             messages.add_message(request, messages.SUCCESS,
>>>> self.success_message)
>>>>             return redirect(self.success_url)
>>>>         return render(request, self.template_name, {'form': form})
>>>>
>>>> On Wed, Oct 25, 2017 at 3:22 AM, Jack Zhang <[email protected]> wrote:
>>>>
>>>>> Thanks for your response.  This is an off-topic question but I can't
>>>>> figure out how to get 'request' working.  I'm using the CreateView generic
>>>>> class, so there's no space to insert 'request'.  This is what my code 
>>>>> looks
>>>>> like.  When I try to run it, it tells me that request is not found.
>>>>>
>>>>> class ListingCreateView(LoginRequiredMixin, CreateView):
>>>>>     model = BuyerListing
>>>>>
>>>>>     form_class = PostListing(self.request.POST)
>>>>>     if form.is_valid():
>>>>>         form_save = form.save(commit=False)
>>>>>         form_save.user = request.user # user is logged in
>>>>>         form.save()
>>>>>
>>>>>     def get_queryset(self):  # the user want to edit this post must be
>>>>> owner this post
>>>>>         post_qs = super(PostListing, self).get_queryset()
>>>>>         return post_qs.filter(user=self.request.user)
>>>>>
>>>>> On Tuesday, October 24, 2017 at 12:35:15 PM UTC-4, k2527806 wrote:
>>>>>>
>>>>>> try that in your views
>>>>>>
>>>>>> form = Dog_Form(request.POST)
>>>>>> if form.is_valid():
>>>>>>     form_save = form.save(commit=False)
>>>>>>     form_save.user = request.user # user is logged in
>>>>>>     form.save()
>>>>>>
>>>>>>
>>>>>> On Tue, Oct 24, 2017 at 7:37 PM, Jack Zhang <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Let's say I have a model called 'Dogs'.  Users can create instances
>>>>>>> of Dogs.  Let's say we have a user called User1.  I have 2 questions:
>>>>>>>
>>>>>>> 1. When User1 creates an instance of Dogs, how do I automatically
>>>>>>> assign that instance to User1?  I tried using a model field like this 
>>>>>>> but
>>>>>>> it doesn't pick the user automatically:
>>>>>>>
>>>>>>> user = models.ForeignKey(User, unique=False)
>>>>>>>
>>>>>>> 2. After the instance has been created, how do I make the instance
>>>>>>> only editable and removable by the user who made it?  Basically, if 
>>>>>>> User1
>>>>>>> creates an instance of Dogs, only User1 can edit and delete that 
>>>>>>> instance.
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Django users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> Visit this group at https://groups.google.com/group/django-users.
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/django-users/dedbfe8b-1013
>>>>>>> -4844-b142-1e8615a1ef9a%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/django-users/dedbfe8b-1013-4844-b142-1e8615a1ef9a%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Django users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at https://groups.google.com/group/django-users.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/django-users/950d853a-ade3
>>>>> -4d27-8e23-a47c6b70c80e%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/django-users/950d853a-ade3-4d27-8e23-a47c6b70c80e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/3b9b7b1a-78dd-4123-aef5-82e0b7089cb1%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/3b9b7b1a-78dd-4123-aef5-82e0b7089cb1%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CACOk0TwXXhgfPgbt5w7SbdE9kPSOXMuTnXmdMwmEOiBCTvEiBg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to