我目前正在开发一个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'})
然后将从该字典生成一个表单,允许用户通过将字典值显示为文本输入来更改该值。
它比我原来的计划更有限(也更麻烦),但我认为这可能有用。问题是我之前只使用过模型,我目前仍然坚持从字典中生成表单。这里有人能指出我正确的方向吗?
问候,
碧玉