added custom autocomplete for category in product admin, still not working correctly
This commit is contained in:
@@ -5,17 +5,17 @@ from . import forms
|
|||||||
|
|
||||||
# Register your models here.
|
# Register your models here.
|
||||||
|
|
||||||
class CagtegoryAdmin(admin.ModelAdmin):
|
class ProductAdmin(admin.ModelAdmin):
|
||||||
form = forms.CategoryTagForm
|
form = forms.ProductTagForm
|
||||||
|
|
||||||
|
|
||||||
|
'''
|
||||||
|
class ProductInline(admin.TabularInline):
|
||||||
|
model = models.Product
|
||||||
|
form = forms.ProductTagForm
|
||||||
|
'''
|
||||||
|
|
||||||
class CategoryInline(admin.TabularInline):
|
admin.site.register(models.Product, ProductAdmin)
|
||||||
model = models.CategoryTag
|
|
||||||
form = forms.CategoryTagForm
|
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(models.Product)
|
|
||||||
admin.site.register(models.TreeTag)
|
admin.site.register(models.TreeTag)
|
||||||
admin.site.register(models.CategoryTag, CagtegoryAdmin)
|
admin.site.register(models.CategoryTag)
|
||||||
admin.site.register(models.AttributeTag)
|
admin.site.register(models.AttributeTag)
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ from dal import autocomplete
|
|||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
from .models import CategoryTag
|
from .models import CategoryTag, Product
|
||||||
|
|
||||||
|
|
||||||
class CategoryTagForm(forms.ModelForm):
|
class ProductTagForm(forms.ModelForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CategoryTag
|
model = Product
|
||||||
fields = ('__all__')
|
fields = ('__all__')
|
||||||
widgets = {
|
widgets = {
|
||||||
'category': autocomplete.ModelSelect2(url='cagtegory-autocomplete')
|
'category': autocomplete.ListSelect2(url='category-autocomplete')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,9 +60,9 @@ class Product(models.Model):
|
|||||||
update_date = models.DateTimeField('Fecha de actualización de producto', null=True, blank=True)
|
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)
|
discount = models.DecimalField('Descuento', max_digits=5, decimal_places=2, null=True, blank=True)
|
||||||
stock = models.PositiveIntegerField('Stock', 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
|
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)
|
identifiers = models.TextField('Identificador único de producto', null=True, blank=True)
|
||||||
|
|
||||||
# internal
|
# internal
|
||||||
|
|||||||
@@ -223,12 +223,11 @@ class CategoryTagAutocomplete(autocomplete.Select2QuerySetView):
|
|||||||
Tag = Product.category.tag_model
|
Tag = Product.category.tag_model
|
||||||
|
|
||||||
# Return nothing if not auth
|
# Return nothing if not auth
|
||||||
if not self.request.is_authenticated():
|
if self.request.user.is_anonymous:
|
||||||
return Tag.objects.none()
|
return Tag.objects.none()
|
||||||
|
|
||||||
qs = Tag.objects.all()
|
qs = Tag.objects.all()
|
||||||
|
|
||||||
if self.q:
|
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]
|
||||||
|
|||||||
Reference in New Issue
Block a user