Django:从字典

时间:2017-08-08 13:44:01

标签: django dictionary django-forms

我目前正在开发一个django-app,用户可以选择为选定数量的单词选择同义词。然后,通过这些同义词在网站上替换这些单词

这些同义词被定义为一个单独的模型:

class TransportSynonyms(models.Model):
    user= models.ForeignKey(user)
    key = models.CharField(max_length=255)
    value = models.CharField(max_length=255)

此过程部分使用模板标签完成,因此可以“同义”的单词数量为'是有限的。例如,以下单词可以用同义词替换:

'train', 'plane'. 

在html模板中显示如下:

{% get_trans "train" %}
{% get_trans "plane" %}

我现在想让用户能够为自己定义同义词,而无需管理员视图。我创建了几个页面,使用ListView作为概述(因此用户可以看到他们可以更改哪些单词)以及导致EditViews的单个按钮。

但是,由于默认情况下用户没有链接到它们的同义词,因此ListView显示为空。我可以通过从视图中传递一个列表来解决这个问题,但是该列表没有必要的' .id'值和链接到EditViews毫无价值。

我的列表视图目前如下表所示:

Original | Synonym 
--------------------------- 
train | train (button to editview)
plane | aircraft (button to editview)

按钮需要ID值

href="{% url 'synonym_edit'  pk=synonym.id %}"  

我必须找到一种方法来使用' synonymable'来填充ListView。单词并提供指向DetailView的链接(对于同义词可能尚不存在)。

我考虑过将ListView全部放在一起,而是将字典传递给表单。默认情况下,键和值都是相同的单词

({'train' : 'train', 'plane' : 'plane'})

然后将从该字典生成一个表单,允许用户通过将字典值显示为文本输入来更改该值。

它比我原来的计划更有限(也更麻烦),但我认为这可能有用。问题是我之前只使用过模型,我目前仍然坚持从字典中生成表单。这里有人能指出我正确的方向吗?

问候,

碧玉

0 个答案:

没有答案