I really appreciate if anybody could give me an advice about form_valid.
Here is what I want to do.
I am making a simple blog.
I am making simple features:
1) only superuser can create articles.
2) logged-in users can make comments to articles.
I followed along tutorials and mostly done.
*But last thing I want to do is that when users make comments to any
articles, I want author field and article field to be automatically set.*
*Currently, users need to choose author field and article field to make
comments as well as comment texts.*
The tutorial that I followed along uses form_valid and by using form_valid,
now I don't need to choose author.
But I have been struggling with how to automatically set article field by
using form_valid.
I have a simple models.py and views.py below.
<models.py>
class Article(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(
get_user_model(),
on_delete=models.CASCADE,
)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('article_detail', args=[str(self.id)])
class Comment(models.Model): # new
article = models.ForeignKey(
Article,
on_delete=models.CASCADE,
related_name = 'comments',
)
comment = models.CharField(max_length=140)
author = models.ForeignKey(
get_user_model(),
on_delete=models.CASCADE,
)
def __str__(self):
return self.comment
def get_absolute_url(self):
return reverse('article_list')
<views.py>
...(not showing all)
#for comment
class ArticleCommentCreateView(LoginRequiredMixin, CreateView):
model = Comment
template_name = 'article_comment_new.html'
fields = ('comment',)
login_url = 'login'
def form_valid(self, form):
form.instance.author = self.request.user
*form.instance.article = self.request.article*
return super().form_valid(form)
I keep getting errors with this code.
I know that *form.instance.article = self.request.article* is something
wrong, but I am having hard time to figure out how to set article field to
be automatically set.
Please give any advice about this.
I really appreciate.
Looking forward to hearing from anyone.
Best regards,
Nori
--
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/fe3a8f1d-2e97-41f8-8af4-fe638cb9e787%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.