Django: У меня есть текстовое поле, которое при вводе в него текста также сохраняет html-ввод.
Я пытаюсь заставить мой HTML возвращать информацию, записанную в TextField, когда информация отправляется и отображается, вместо того, чтобы быть увиденной в ожидаемом формате, каждая новая строка, на которой был бы текст, появляется внутри угловых скобок абзаца. Кто-нибудь может помочь мне понять, почему текст отображается таким образом?
my HTML
<div>
<p> <strong> Roster Name :</strong> {{ post.name }}</p>
<br>
<p> <strong> List Author: </strong>{{ post.createdBy }} on {{ post.createdOn}} </p>
<p> <strong> Points: </strong>{{ post.points }} </p>
<p> <strong> Faction: </strong> {{post.faction}}
{% for value, text in factions %}
{% if value == post.faction %}
{{ text }}
{% endif %}
{% endfor %}
</p>
<p><strong> Roster: </strong> {{ post.roster }}</p>
моя модель
class RosterList(models.Model): """ модель для сохранения списков """ имя = models.CharField(max_length=200, unique=True, null=False, blank=False) очки = models.IntegerField(choices=POINTS) фракция = models.IntegerField(choices=FACTIONS) реестр = models.TextField() createdBy = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_post', null=True, blank=True) createdOn = models.DateTimeField(auto_now_add=True) Комментарии = models.ManyToManyField(User, related_name='roster_comments', blank=True) Likes = models.ManyToManyField(User, related_name='roster_likes', blank=True) Не нравится = models.ManyToManyField(User, related_name='roster_dislikes', blank=True) статус = models.IntegerField(choices=STATUS, default=0)
class Meta:
ordering = ['-createdOn']
def __str__(self):
return self.name
def number_of_likes(self):
return self.Likes.count()
def number_of_dislikes(self):
return self.Dislikes.count()
def number_of_comments(self):
return self.Comments.count()
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
Мое мнение
class RosterDetail(View): """ представление для отображения страницы с подробной информацией о реестре """ def get(self, request, id, *args, **kwargs): """ используется для получения данных из базы данных """ queryset = RosterList.objects.filter(status=1) post = get_object_or_404(queryset, pk=id) comments = Comment.objects.filter(post=post) понравился = False не нравится = False if post.Likes.filter(id=self.request.user.id).exists(): liked = True не нравится = False если post.Dislikes.filter(id=self.request.user.id).exists(): disliked = True понравилось = False
return render(
request,
"RosterDetail.html",
{
"post": post,
"comments": comments,
"commented": False,
'factions': FACTIONS,
"liked": liked,
"disliked": disliked,
"comment_form": CommentForm()
},
)
def post(self, request, id, *args, **kwargs):
"""
function to allow view to post to db
"""
post = RosterList.objects.get(pk=id)
roster = RosterList.objects.filter(post=post)
user = User.objects.get(username=request.user.username)
comments = Comment.objects.filter(post=post)
liked = False
if post.Likes.filter(id=self.request.user.id).exists():
liked = True
# handle the post and save the form data
form = CommentForm(request.POST)
if form.is_valid():
new_form = form.save(commit=False)
new_form.post = post
new_form.user = user
new_form.save()
# add the user to the Comments field of the RosterList
post.Comments.add(user)
# save the RosterList
post.save()
context = {
'LikesForm': form,
'DisikesForm': form,
'comment_form': form,
'factions': FACTIONS,
'post': post,
'comments': comments
}
# return redirect(reverse('home'))
return render(request, 'RosterDetail.html', context)
# use the post variable which gets the object needed to be acounted by its id and create a variable set it to count and call the method created to count the likes in the model
number_of_likes = post.number_of_likes()
number_of_dislikes = post.number_of_dislikes()
number_of_comments = post.number_of_comments()
context['number_of_likes'] = number_of_likes
context['number_of_dislikes'] = number_of_dislikes
context['number_of_comments'] = number_of_comments