Having a nullable many-to-many field doesn't do anything. The declaration of a
ManyToManyField causes the creation of an intermediate table to hold the relationship. Each relation between the two tables is an entry in this new table. By definition, having no relations between two tables would mean no entries in this table. There's no use of
null. Consider removing
null=True from this property.
In order to conform to the object model, classes that define their own equality method should also define their own hash method, or be unhashable. If the hash method is not defined then the hash of the super class is used. This is unlikely to result in the expected behavior. A class can be made unhashable by setting its
__hash__ attribute to None.
Debuggers should only be used temporarily and locally. It is highly recommended to remove debug statements in checked-in code.
The class is using, as a metaclass, something which might be invalid for using as a metaclass.
except, specify exception instead FLK-E722
except without a specific exception can be error prone.