python - "Add a related_name argument to the definition for ' XXX'.的自动解决方案?

标签 python database django django-models

我正在将 Django 插入现有系统。我得到了一个遗留模式,我必须使用它。

我已经使用 inspectdb 生成了模型,但我得到了数百个:

ABC>DEF: Accessor for field 'HIJ' clashes with related field 'KLM'. Add a related_name argument to the definition for 'HIJ'.

如果它只是一个小数字,我不会有任何问题。但事实并非如此。

是否有通过添加唯一的 related_name 自动解决此问题的方法?

编辑:澄清一下,我确实在寻找一种自动解决问题的方法,而不是手动编辑每个字段的方法。

最佳答案

有时我发现自己处于这种情况。修改 inspectdb 在几个实例中对我有用,但我不能保证它在所有情况下都适用。这是我所做的:

    #Original inspectdb
    121                         if rel_to in known_models:
    122                             field_type = 'ForeignKey(%s' % rel_to
    123                         else:
    124                             field_type = "ForeignKey('%s'" % rel_to

    #Modified inspectdb
    121                         if rel_to in known_models:
    122                             field_type = 'ForeignKey(%s' % rel_to
    123                         else:
    124                             field_type = "ForeignKey('%s'" % rel_to
    125                         extra_params['related_name'] = '%s_%s' % (table2model(table_name),column_to_field_name[column_name])

这将自动为每个生成的模型添加一个 related_name 参数,不太可能与任何其他模型发生冲突。同样,这取决于具体情况,但这一行修改为我节省了大量工作。

关于python - "Add a related_name argument to the definition for ' XXX'.的自动解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315379/

相关文章:

python - 如何在不影响数据的情况下更改pandas中的索引值

mysql - 限制mysql表中的字符数

MySQL-如何在一列中存储多种日期类型(季度、月份、年份)

html - 大型 HTML 表格到本地数据库

django - 如何获取 Django request.POST 中所有选中复选框的值?

python - Celery 连接错误

python - 如何检查用户输入的电话号码是否包含国家代码?

python - 我可以在 Python 中迭代一个类吗?

python - 如何阻止我的 Pandas 数据表在打印时被截断?

python - Pycharm调试 watch : Can I show directly an image