Отзывы на django
Следуя одному видеоролику я сделал отзывы на django. Как мне изменить отображения имени пользователя на то, под которым он был зарегистрирован?
models.py
class Reviews(models.Model):
name = models.CharField('Имя', max_length=100)
text = models.TextField('Отзыв', max_length=3400)
parent = models.ForeignKey('self', verbose_name='Родитель', on_delete=models.SET_NULL, null=True, blank=True)
book = models.ForeignKey(BookModel, verbose_name='книга', on_delete=models.CASCADE)
name_user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
views.py
class MoreInfoView(View):
"""Вывод данных на страницу 'подробнее' """
def get(self, request, id):
book_info = BookModel.objects.filter(id=id).first()
stuff = get_object_or_404(BookModel, id=self.kwargs['id'])
total_likes = stuff.total_likes()
return render(request, 'bookapp/more_info.html', context={
'id': id,
'book_info': book_info,
'book': BookModel.objects.all(),
'total_likes': total_likes,
})
class AddReview(View):
"""Добавления отзывов"""
def post(self, request, pk):
form = ReviewForm(request.POST)
book = BookModel.objects.get(id=pk)
if form.is_valid():
form = form.save(commit=False)
form.book = book
form.save()
return HttpResponseRedirect(reverse('more_info', args=[pk]))
html
<form action="{% url 'review' id %}" method="post" class="mt-4">
{% csrf_token %}
<div class="form-group">
<label for="contactcomment" class="editContent">
Отзыв
</label>
<textarea class="form-control border" rows="5" name="text"
id="contactcomment" required=""></textarea>
</div>
<div>
<div class="col-sm-6 form-group p-0 editContent">
<label for="contactusername" class="editContent">
Имя *
</label>
<input type="text" class="form-control border" name="name"
id="contactusername" required="">
</div>
<div class="col-sm-6 form-group ml-sm-3 editContent">
</div>
<button type="submit" class="btn btn-warning">
Отправить
</button>
</div>
{% endif %}<br>
<p>Отзывы:</p>
{% for review in book_info.reviews_set.all %} <br>
<div id="review">
Имя:<p style="font-weight: bold">{{ review.name }}</p>
Содержание: <p style="font-weight: bold">{{ review.text }}</p>
<p> {{ review.user_info }}</p>
</div>
{% endfor %}
</form>
forms.py
class ReviewForm(forms.ModelForm):
class Meta:
model = Reviews
fields = ("name", "text")