我目前正在使用一个Django项目。
我有字典:
来自models.py
class teltab(models.Model):
code=models.CharField(max_length=255)
telescope=models.CharField(max_length=255)
comment=models.TextField(blank=True)
和一个向数据添加数据的表单:
class newtelescopesform(forms.ModelForm):
class Meta:
model=teltab
现在我需要做以下事情:
即我的表格看起来像这样
我希望得到这个
所以我的代码来自views.py:
if len(request.GET['comment'])>0:
commentq=request.GET['comment'] # I expect that it will take the text from form
p=tel_list.get('comment', "") # I expect that it will take the text from database
commentp = p + "\n" + commentq # and it should merge the text
tel_list.update(comment=commentq)
for item in tel_list:
item.save()
但它给了我一条错误消息:“太多值无法解压”。
我的问题是我做错了什么?错误的原因是什么?
请教我优雅的解决方案。
(抱歉长篇文章,我显然不知道自己在做什么)。
答案 0 :(得分:0)
使用单独的Comment
模型并与原始模型形成外键关系几乎肯定会更好。
class Teltab(models.Model): # it’s good python coding style to capitalize classnames
code = models.CharField(max_length=255)
telescope = models.CharField(max_length=255)
class Comment(models.Model):
text = models.TextField(required=True)
teltab = models.ForeignKey(Teltab)
然后您可以获得原始模型的所有评论,例如 -
my_teltab = Teltab.objects.first()
my_teltab.comment_set.all()