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] > <javascript:>> 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] >> <javascript:>> 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] >>> <javascript:>> 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] <javascript:>. >>>> To post to this group, send email to [email protected] >>>> <javascript:>. >>>> 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. For more options, visit https://groups.google.com/d/optout.

