for item in data:
    category_id = item['category_id']
    del item['category_id']

    category = Category.objects.get(pk=category_id)

    code = item['code']

    try:
        article = Article.objects.get(pk=code)
    except:
        article = Article(**item)
        article.save()

    # at this point I have the article & category, but the next
    # statement throws me an error:
    category.articles.add(article)
    category.save()

错误是:

   AttributeError: 'ManyRelatedManager' object has no attribute 'add'

推荐答案

JamesO是正确的-看起来您的Category.Particle字段有一个直通关系.假设您的型号至少有resemble个以下

class Article(models.Model):
    name = models.CharField(max_length=128)

class Category(models.Model):
    name = models.CharField(max_length=128)
    articles = models.ManyToManyField(Article, through='Membership')

class Membership(models.Model):
    article = models.ForeignKey(Article)
    category = models.ForeignKey(Category)
    author = models.CharField()

那么要在Category的基础上加Article,你必须

m = Membership(article=article, category=category, author="Dan TM")
m.save()

注意-我们不知道through字段叫什么,所以Membership只是个猜测,灵感来自django docs

Django相关问答推荐

Django-将html数据保存到quillfield中

Htmx如何从事件中访问数据?

在Django ORM中引用非主外键

在 Trunc 的 kind 属性中使用字段

ModuleNotFoundError:没有名为guardian.shortcuts的模块

root urls.py 是 Django 中的 config/urls.py 吗?

如何在 django 中修改现有模型实例?

Django REST Framework 图片上传

是否有 django 模板过滤器来显示百分比?

是否可以在没有模型的情况下创建自定义管理视图

用户组和权限

Django:使用render或render_to_response时添加响应头

django.core.exceptions.ImproperlyConfigured:请求设置 USE_I18N,但未配置设置

django post_save 更新信号

在 Mac OS X 上安装支持 JPEG 的 PIL

Django 覆盖模型 Clean() 与 Save()

有日期时间±无穷大吗?

Django - 每 x 秒运行一个函数

AUTH_USER_MODEL 指的是尚未安装和创建的模型 .. AbstractUser 模型无法登录

Django 模型方法 - create_or_update