From 085c6f86a723dd7658b89d259b61fe8df69e3708 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 4 Mar 2021 13:23:11 +0000 Subject: [PATCH] added custom autocomplete for category in product admin, still not working correctly --- products/admin.py | 18 +++++++++--------- products/forms.py | 8 ++++---- products/models.py | 4 ++-- products/views.py | 7 +++---- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/products/admin.py b/products/admin.py index b90c08f..e6393ee 100644 --- a/products/admin.py +++ b/products/admin.py @@ -5,17 +5,17 @@ from . import forms # Register your models here. -class CagtegoryAdmin(admin.ModelAdmin): - form = forms.CategoryTagForm +class ProductAdmin(admin.ModelAdmin): + form = forms.ProductTagForm +''' +class ProductInline(admin.TabularInline): + model = models.Product + form = forms.ProductTagForm +''' -class CategoryInline(admin.TabularInline): - model = models.CategoryTag - form = forms.CategoryTagForm - - -admin.site.register(models.Product) +admin.site.register(models.Product, ProductAdmin) admin.site.register(models.TreeTag) -admin.site.register(models.CategoryTag, CagtegoryAdmin) +admin.site.register(models.CategoryTag) admin.site.register(models.AttributeTag) diff --git a/products/forms.py b/products/forms.py index 456df98..3bb035d 100644 --- a/products/forms.py +++ b/products/forms.py @@ -2,13 +2,13 @@ from dal import autocomplete from django import forms -from .models import CategoryTag +from .models import CategoryTag, Product -class CategoryTagForm(forms.ModelForm): +class ProductTagForm(forms.ModelForm): class Meta: - model = CategoryTag + model = Product fields = ('__all__') widgets = { - 'category': autocomplete.ModelSelect2(url='cagtegory-autocomplete') + 'category': autocomplete.ListSelect2(url='category-autocomplete') } diff --git a/products/models.py b/products/models.py index 27062b9..63ad73a 100644 --- a/products/models.py +++ b/products/models.py @@ -60,9 +60,9 @@ class Product(models.Model): update_date = models.DateTimeField('Fecha de actualización de producto', null=True, blank=True) discount = models.DecimalField('Descuento', max_digits=5, decimal_places=2, null=True, blank=True) stock = models.PositiveIntegerField('Stock', null=True, blank=True) - tags = TagField(to=TreeTag) + tags = TagField(to=TreeTag, blank=True) category = SingleTagField(to=CategoryTag, null=True, blank=True, on_delete=models.SET_NULL) # main tag category - attributes = TagField(to=AttributeTag, related_name='product_attributes') + attributes = TagField(to=AttributeTag, blank=True, related_name='product_attributes') identifiers = models.TextField('Identificador único de producto', null=True, blank=True) # internal diff --git a/products/views.py b/products/views.py index 35ac069..4f3e153 100644 --- a/products/views.py +++ b/products/views.py @@ -223,12 +223,11 @@ class CategoryTagAutocomplete(autocomplete.Select2QuerySetView): Tag = Product.category.tag_model # Return nothing if not auth - if not self.request.is_authenticated(): + if self.request.user.is_anonymous: return Tag.objects.none() qs = Tag.objects.all() - if self.q: - qs = qs.filter(name__istartswith=self.q) + qs = qs.filter(name__icontains=self.q) - return self.q + return qs # [x.label for x in qs]