Как получить зарегистрированного в данный момент пользователя (из авторизации) и вывести его имя на пост - PullRequest
0 голосов
/ 08 декабря 2018

Как я могу получить имя пользователя и сохранить его в обсуждаемой модели, а затем отобразить в шаблоне.Я попробовал несколько вещей, но это не работает.Любая помощь приветствуется.спасибо

модели

class  Discussion(models.Model):
    author=models.CharField(max_length=15,null=True)
    title=models.CharField(max_length=50)
    argument=models.CharField(max_length=350)
    slug=models.SlugField(max_length=31,unique=True)
    created_on=models.DateField(auto_now=True)
    def get_absolute_url(self):
        return reverse('discussion_detail',kwargs={'slug':self.slug})
    def __str__(self):
        return self.title

Форма

class DiscussionForm(forms.ModelForm):
    class Meta:
        model=Discussion
        fields=['title','argument','slug']

Просмотров:

class NewDiscussionView(LoginRequiredMixin,View):
    template_name='Discussion/new_discussion.html'
    form_class= DiscussionForm
    def get(self,request):
        return render(request,self.template_name,{'form': self.form_class()})
    def post(self,request):
        bound_form = self.form_class(request.POST,instance=request.user)
        if bound_form.is_valid():
            new_discussion=bound_form.save()
            return render(request,'Discussion/discussion.html',{'discussion':Discussion.objects.all()})
        else:
            return render(request,self.template_name,{'form': bound_form})

1 Ответ

0 голосов
/ 08 декабря 2018

Вот решение, подразумеваемое devdob

class NewDiscussionView(LoginRequiredMixin,View):
    template_name='Discussion/new_discussion.html'
    form_class= DiscussionForm
    def get(self,request):
        return render(request,self.template_name,{'form': self.form_class()})
    def post(self,request):
        bound_form = self.form_class(request.POST)
        if bound_form.is_valid():
            bound_form.instance.author = request.user.username #Solution
            new_discussion=bound_form.save()
            return render(request,'Discussion/discussion.html',{'discussion':Discussion.objects.all()})
        else:
            return render(request,self.template_name,{'form': bound_form})
...