Sagen wir, Sie haben 1k Objekte, von denen jedes 10-50 Tags hat.Django "Ähnliche Objekte" basierend auf ähnlichen Tag-Sets
Für ein beliebiges Objekt muss eine Liste von Objekten vorhanden sein, die mit den meisten Stichwörtern Schlüsselwörter haben.
Noch innerhalb der Django Parameter kenne ich keine Möglichkeit, so abzufragen.
Gibt es so etwas im Django oder sollte ich einen Algorithmus außerhalb von djangos Einschränkungen schreiben?
class Product(models.Model):
product_id = models.IntegerField(
unique=True,
)
slug = models.SlugField(
unique=True,
blank = True,
null = True,
)
meta_description = models.TextField(
max_length = 160,
blank = True,
null = True,
)
title = models.CharField(
max_length = 160,
blank = True,
null = True,
)
description = models.TextField(
blank = True,
null = True,
)
first_subject_heading = models.CharField(
max_length = 160,
blank = True,
null = True,
)
description_main = models.TextField(
blank = True,
null = True,
)
price = models.DecimalField(
max_digits=6,
decimal_places=2,
blank = True,
null = True,
)
published = models.DateTimeField(auto_now_add=True, blank=True)
tags = TaggableManager(
blank = True,
)
category = models.ManyToManyField(
'ProductCategory',
blank = True,
)
license_selection_model = models.IntegerField(
default = 1,
blank = True,
null = True,
)
minipic = models.ImageField(
upload_to='minipics/',
blank = True,
null = True,
)
def get_absolute_url(self):
from django.core.urlresolvers import reverse
return reverse('store.views.product', args=[self.slug])
def save(self, *args, **kwargs):
if not self.id and not self.slug:
#Only set the slug when the object is created.
self.slug = slugify(self.title) #Or whatever you want the slug to use
super(Product, self).save(*args, **kwargs)
def __str__(self):
return "%i, %s"%(self.product_id, self.title)
Dies ist mit Postgres und die taggit Erweiterung (taggit der "similars" Option einen Fehler hat)
Bitte die entsprechenden Modelle hinzufügen. –
Ich suche nach passenden Tags ... Modell hinzugefügt. – Pipsqweek
Funktioniert 'some_object.tags.similar_objects()'? –