forked from rc/aircox
		
	media url
This commit is contained in:
		@ -25,6 +25,8 @@ class Thread (models.Model):
 | 
				
			|||||||
    post_id = models.PositiveIntegerField()
 | 
					    post_id = models.PositiveIntegerField()
 | 
				
			||||||
    post = GenericForeignKey('post_type', 'post_id')
 | 
					    post = GenericForeignKey('post_type', 'post_id')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    __initial_post = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def __get_query_set (cl, function, model, post, kwargs):
 | 
					    def __get_query_set (cl, function, model, post, kwargs):
 | 
				
			||||||
        if post:
 | 
					        if post:
 | 
				
			||||||
@ -47,7 +49,7 @@ class Thread (models.Model):
 | 
				
			|||||||
        return self.__get_query_set('exclude', model, post, kwargs)
 | 
					        return self.__get_query_set('exclude', model, post, kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def save (self, *args, **kwargs):
 | 
					    def save (self, *args, **kwargs):
 | 
				
			||||||
        self.post = self.__initial_post
 | 
					        self.post = self.__initial_post or self.post
 | 
				
			||||||
        super().save(*args, **kwargs)
 | 
					        super().save(*args, **kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __str__ (self):
 | 
					    def __str__ (self):
 | 
				
			||||||
@ -130,6 +132,11 @@ class RelatedPostBase (models.base.ModelBase):
 | 
				
			|||||||
        if not '__str__' in attrs:
 | 
					        if not '__str__' in attrs:
 | 
				
			||||||
            attrs['__str__'] = lambda self: str(self.related)
 | 
					            attrs['__str__'] = lambda self: str(self.related)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if name is not 'RelatedPost':
 | 
				
			||||||
 | 
					            _relation = RelatedPost.Relation()
 | 
				
			||||||
 | 
					            _relation.__dict__.update(rel)
 | 
				
			||||||
 | 
					            attrs['_relation'] = _relation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return super().__new__(cls, name, bases, attrs)
 | 
					        return super().__new__(cls, name, bases, attrs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -146,14 +153,14 @@ class RelatedPost (Post, metaclass = RelatedPostBase):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_attribute (self, attr):
 | 
					    def get_attribute (self, attr):
 | 
				
			||||||
        attr = self.Relation.mappings.get(attr)
 | 
					        attr = self._relation.mappings.get(attr)
 | 
				
			||||||
        return self.related.__dict__[attr] if attr else None
 | 
					        return self.related.__dict__[attr] if attr else None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def save (self, *args, **kwargs):
 | 
					    def save (self, *args, **kwargs):
 | 
				
			||||||
        if not self.title and self.related:
 | 
					        if not self.title and self.related:
 | 
				
			||||||
            self.title = self.get_attribute('title')
 | 
					            self.title = self.get_attribute('title')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if self.Relation.bind_mapping:
 | 
					        if self._relation.bind_mapping:
 | 
				
			||||||
            self.related.__dict__.update({
 | 
					            self.related.__dict__.update({
 | 
				
			||||||
                rel_attr: self.__dict__[attr]
 | 
					                rel_attr: self.__dict__[attr]
 | 
				
			||||||
                for attr, rel_attr in self.Relation.mapping
 | 
					                for attr, rel_attr in self.Relation.mapping
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user