Проблема с повторным использованием одного и того же поля в нескольких моделях заключается в том, что атрибут model
поля будет установлен на последнюю модель, где определено поле
from django.db import models
common_modified_by = models.CharField(max_length=20)
class Author(models.Model):
name = models.CharField(max_length=20)
modified_by = common_modified_by
class Book(models.Model):
title = models.CharField(max_length=20)
modified_by = common_modified_by
Поле теперь имеет Book
как model
, даже когда вы получаете поле от Author
модели. Это может быть проблематично c
>>> Book._meta.get_field('modified_by').model
<class 'foo.models.Book'>
>>> Author._meta.get_field('modified_by').model
<class 'foo.models.Book'>
Одной из проблем может быть использование поля в качестве цели внешнего ключа django.db.models.fields.related
, кажется, довольно часто использует этот атрибут model
Он также используется при создании подзапросов