Dies ist eine Frage zu Python-Mixins, die im Allgemeinen nützlich sein kann. Ich verwende nur Django-Modelle, da dies der Anwendungsfall ist, mit dem ich am besten vertraut bin.
Sollte ein Mixin von der Klasse erben, die mit oder von 'object' gemischt werden soll?
Beispiele nach Code, was ist korrekter oder besser oder besser, je nachdem, was Sie erreichen möchten?
Dies
class TaggingMixin(models.Model):
tag = models.ForeignKey(Tag)
class Meta:
abstract = True
class MyModel(models.Model, TaggingMixin):
title = models.CharField(max_length=100)
Oder dieses:
class TaggingMixin(object):
tag = models.ForeignKey(Tag)
class Meta:
abstract = True
class MyModel(models.Model, TaggingMixin):
title = models.CharField(max_length=100)
Ich denke, das Erben von Objekten ist der richtige Weg. Aber ich sehe Beispiele für den ersten Fall im ganzen Netz ...
EDIT: Ich habe meine Folgefrage auf eine separate Frage verschoben: Django Abstract Models gegen einfache Python-Mixins gegen Python ABCs
TypeError: Cannot create a consistent method resolution order (MRO). Tun Sieclass MyModel(TaggingMixin):stattdessen. Siehe stackoverflow.com/q/29214888/1627479