나는 데이터베이스에 뉴스 항목을 게시하는 ModelForm을 가지고 있으며, 승인 된 포스터가 굵게 또는 기울임 체와 같은 스타일 텍스트에 특정 HTML 조각을 삽입 할 수 있도록 자바 스크립트 텍스트 영역을 사용합니다. 그러나 "안전한"필터를 사용하여 템플릿 출력을하므로 양식 위젯이 전달하려고하는 모든 HTML을 출력합니다. 여기에는 절대로 없어지지 않는 번거로운 <br>
태그가 포함되어 있기 때문에 폼 유효성 검사없이 필드를 비어있는 것으로서 보내고 중지 할 수 있습니다. <br>
태그를 필터링 할 수는 없지만 데이터에서 완전히 제거 할 수 있도록하려면 어떻게해야합니까?Django 폼에서 특정 HTML 태그를 완전히 제거합니다.
Models.py :
from django.db import models
from django.forms import ModelForm, forms
from django.contrib.auth.models import User
# Create your models here.
class NewsItem(models.Model):
user = models.ForeignKey(User)
date = models.DateField(auto_now=True)
news = models.TextField(max_length=100000, blank=False, help_text='HELP TEXT')
def __unicode__(self):
return u'%s %s %s' % (self.user, self.date, self.news)
class NewsForm(ModelForm):
class Meta:
model = NewsItem
exclude=('user','date',)
Views.py :
이from news.models import NewsForm, NewsItem
from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
def news(request):
if request.method == 'POST':
item = NewsItem(user=request.user)
form = NewsForm(request.POST, instance=item)
if form.is_valid():
form.save()
return HttpResponseRedirect('/news/')
else:
form = NewsForm()
news_list = NewsItem.objects.all()
return render(request, 'news_list.html', {'news_list': news_list, 'form': form})
news_list.html :
{% extends "base.html" %}
{% block title %}News in the Corps{% endblock %}
{% block content %}
<h2 id="page_h">News in the Corps</h2>
{% if user.is_authenticated %}
<h3>Post News</h3>
<script src="{{ STATIC_URL }}nicEdit.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
<div id="news_poster">
<form id="news_poster" action="/news/" method="POST">{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
</div>
{% endif %}
<ul id="events_list">
{% if news_list %}
<div id="news_list">
{% for news in news_list %}
{% if news.id == 1 %}
<hr />
{% endif %}
<div id="{{ news.id }}" class="news_item">
<p class="poster">Posted By: {{ news.user }} | Posted On: {{ news.date }} | <a href="{% url 'news' %}#{{ news.id }}">Link</a></p>
<div id="news_item">
{{ news.news|safe }}
</div>
</div>
<hr />
{% endfor %}
</div>
{% endif %}
</ul>
{% endblock %}
http://catherinetenajeros.blogspot.com/2013/04/strip-certain-html-tags-before-saving.html – catherine