【问题标题】:Add text to a cell without overwriting existing data在不覆盖现有数据的情况下向单元格添加文本
【发布时间】:2016-03-30 00:03:34
【问题描述】:

我目前正在处理一个 Django 项目。

我有字典:

来自models.py

class teltab(models.Model):
    code=models.CharField(max_length=255)
    telescope=models.CharField(max_length=255)
    comment=models.CharField(max_length=255,blank=True)

以及向字典中添加数据的表单:

class newtelescopesform(forms.ModelForm):
    class Meta:
        model=teltab

通常我会从表单中获得评论并将其写入字典:

来自views.py

if len(request.GET['comment'])>0:
                commentq=request.GET['comment']
                tel_list.update(comment=commentq)
                for item in tel_list: 
                    item.save()

但现在我需要在结果表中已存在的单元格中添加新注释。

即我的桌子是这样的

我想得到这个

【问题讨论】:

  • 什么是tel_list?您可以将其添加到您的问题中吗?你用的是什么数据库?
  • 这是个坏主意,但是,只需使用数据库的任何语法来连接字符串。
  • 哦,对不起,我删除了太多代码,tel_list基本上是:tel_list = teltab.objects.all()。数据库是在 Postgresql 上编写的。

标签: python sql django


【解决方案1】:
  • 事实上,您可以使用 ForeignKey 定义新的评论模型:teltab
   class telTabModel(models.Model):
       code=models.CharField(max_length=255)
       telescope=models.CharField(max_length=255)

    class CommentModel(models.Model):
        teltab = models.ForeignKey('telTabModel', related_name='comments')
        # ...
    from django.contrib.postgres.fields import ArrayField

    class telTabModel(models.Model):
        code=models.CharField(max_length=255)
        telescope=models.CharField(max_length=255)
        comments = ArrayField(models.CharField(max_length=200), blank=True),
  • 如果您不使用 PosgreSQL,但仍想使用数组,我会推荐 Jsonfield

    pip install jsonfield
    
    from jsonfield import JSONField

    class telTabModel(models.Model):
        code=models.CharField(max_length=255)
        telescope=models.CharField(max_length=255)
        comments = JSONField(default=[])

【讨论】:

  • 非常感谢!我的代码仍然有问题,但它有所帮助。
  • 你还有什么问题?
【解决方案2】:

我想你应该将模型注释字段类型更改为 TextField:

comment=models.TextField(blank=True)

然后只需添加“/n{new line}”即可 编辑:丹是对的,如果我没记错的话,有机会在模型中存储列表不是一个好主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多