Comments (3)
I could see some benefit for a decorator, but the underlying mechanism will still probably require model inheritance. Would this problem be solved by providing a NaturalKeyMixin
class instead?
class NaturalKeyMixin:
objects = NaturalKeyModelManager()
@classmethod
def get_natural_key_info(cls):
# ...
# ...
class NaturalKeyModel(NaturalKeyMixin, models.Model):
class Meta:
abstract = True
Can you provide some specific examples of other model modifiers that conflict with natural keys?
from django-natural-keys.
I suspect a mixin would do the trick just fine, and would be more natural than my proposed class decorator.
It's clearly been a while since I first had this need, but I think I'd had my own custom Model class that added some functionality I wanted, probably overriding the default objects
manager or something. I figured out a different approach for that so I could use this library, but requiring that my models inherit from NaturalKeyModel
rather than be able to construct my own superclass (or superclasses provide by other libraries) definitely limited the possibilities for mixing this library with other needs.
from django-natural-keys.
Adding a NaturalKeyMixin to this package would provide compatibility with models that inherit from GeoDjango models.
from django-natural-keys.
Related Issues (10)
- RFE: representation of datetime HOT 1
- unique_together may be deprecated in the future - Consider Unique Constraints? HOT 1
- Is rest_framework forgotten in django-natural-keys ? HOT 1
- Django 3.2 `BigAutoField` IDs break natural keys for models with a single unique field HOT 2
- Problem with null refs HOT 2
- AttributeError: 'CharField' object has no attribute 'rel' HOT 4
- Cannot run update on a non-natural field? HOT 1
- Feature request: Model __repr__
- AttributeError: 'Q' object has no attribute 'split' HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-natural-keys.