added custom autocomplete for category in product admin, still not working correctly

This commit is contained in:
Sam
2021-03-04 13:23:11 +00:00
parent 657b717c07
commit 085c6f86a7
4 changed files with 18 additions and 19 deletions

View File

@@ -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)

View File

@@ -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')
}

View File

@@ -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

View File

@@ -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]