我检查API从浏览器传递的几个字段名称,并在传递给Django ORM查询之前验证它们。
问题是针对给定模式和给定字段名称,如何使用Content-Type框架确定该字段是否被声明为“多对多”字段?
答案 0 :(得分:1)
您可以获取该字段并检查其.many_to_many
属性:
>>> content_type = ContentType.objects.get(model="<model_name>")
>>> field = content_type.model_class()._meta.get_field("<field_name>")
>>> field.many_to_many
True
答案 1 :(得分:0)
您可能不需要内容类型来准确。如果您已经拥有模型或实例,您将获得m2m字段列表,如下所示
m2m_fields = [field.name for field in _object._meta.many_to_many]
如果您仅使用字段名称a.k.a具体字段使用如下
fields = [field.name for field in _object._meta.concrete_fields ]