【问题标题】:how to delete item in listfield for django nonrel如何删除 django nonrel 的列表字段中的项目
【发布时间】:2015-04-06 06:09:21
【问题描述】:

我使用 mongodb 作为 django nonrel 数据库来构建博客站点。博客网站的基本模型是:

  class Post:
      comments = ListField(EmbeddedModelField('Comment'))
      ....(omitted here)

  class Comment:
      created = models.DateTimeField(auto_now_add=True)
      author = models.CharField(max_length=35)
      email = models.EmailField(max_length=64)
      text =  models.TextField()
      ip_addr =  models.IPAddressField()

我发现当我创建评论并将其附加到帖子的列表字段时,评论将没有 objectid,因为它是嵌入的。因此,当我想删除一条评论时,我很难让数据库知道我想删除哪条评论。我是否可以将模板中的评论传递给没有 urls.py 中的 url 函数的视图?

【问题讨论】:

    标签: python django mongodb listfield


    【解决方案1】:

    你可以将模型重写为

    class Post:
        comments = ListField(models.ForeignKey('Comment'))
        ....(omitted here)
    
    class Comment:
        created = models.DateTimeField(auto_now_add=True)
        author = models.CharField(max_length=35)
        email = models.EmailField(max_length=64)
        text =  models.TextField()
        ip_addr =  models.IPAddressField()
    

    【讨论】:

    • 由于我使用的是非关系型数据库,使用foreignkey会牺牲速度。如果可能的话,我想坚持使用嵌入式字段。
    猜你喜欢
    • 2012-02-10
    • 2011-12-08
    • 2011-07-24
    • 2013-07-17
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多