【发布时间】:2018-12-04 12:16:46
【问题描述】:
我正在实现一个网站,我需要在数据库中保存一些来自 HTML 的变量。这个想法是保存用户标记的文本段落并保存在数据库中以在用户访问页面时显示它(例如在 medium.com 中)。
当用户点击段落时我无法刷新页面,我只需要将点击的段落 id (data-artigo) 保存在数据库中。
这是我的观点details.html,我需要将值artigo.pk 和lei.pk 保存在数据库中
<!-- Begin Post Content -->
<div class="article-post">
{% for artigo in artigos %}
<p class='artigo' data-artigo = "{{artigo.pk}}" data-lei = "{{lei.pk}}">
{{artigo}}
</p>
{% endfor %}
</div>
<!-- End Post Content -->
我有一个 js 函数接收这些值并设置黄色背景 (.highlight) 来标记被点击的段落。所以我必须将这些数据保存在数据库中:
$("p.artigo").on("dblclick",(function(e){
let artigo = $(this).data('artigo');
let lei = $(this).data('lei');
let is_marked;
if ($(this).hasClass( "highlight" )){
$(this).removeClass("highlight");
is_marked = false;
}else{
$(this).addClass("highlight");
is_marked = true;
}
}));
这是我需要存储这些数据时的表(我的模型):
class Marcacao(models.Model):
lei = models.ForeignKey(Lei, on_delete=models.CASCADE, verbose_name='Lei', related_name='marcacaoArtigos')
artigo = models.ForeignKey(Lei, on_delete=models.CASCADE, verbose_name='Artigo', related_name='marcacaoLei')
usuario = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name='marcacaoUsuário', related_name='marcacaoUsuario')
is_marked = models.BooleanField('Está Marcado?', blank=True, default=False)
description = models.TextField('Descrição', blank = True, null=True)
如果我没记错的话,我认为我需要在视图中创建一个函数并将这些数据作为参数传递给这个函数,但我不知道该怎么做。
【问题讨论】: