KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
In Python, you can assign an arbitrary attribute from outside the defining class : class Profile(models.Model): user = models.OneToOneField(User) name = models.CharField(max_length=140) p = Profile() p.age = 42 The underlying mechanism here is __dict__ attribute that maintains a dictionary of all attributes. We were all told not to expose our inner workings to the client code , but attaching new data doesn't have to do with encapsulation at all, right? Is this idiom common for Python code? Just What I Mean… Each Tweet has standard fields, like id , text , owner . When returning tweet list for a user, you want to display if a tweet is “favorited” by this user. Obviously, to obtain is_favorite you need to query many-to-many relationship for this user . Would it be OK to pre-fill Tweet objects with is_favorite corresponding to current user ? Sure I could expose a method is_favorite_for(user) but I'm hitting Django template language limitations that doesn't allow to call methods with arguments from inside the template. Also, I believe a template should not be calling methods at all . I know this will work fine, but I wonder if doing something like that in an open source project would get other developers to look on me with contempt.
Tags (comma-separated)
Save Edits
Cancel