Не могу редактировать / обновлять элементы поля . Это ArrayField, который я хочу отредактировать с помощью JSON
{
...
"members": [2,3],
...
}
. Все поля доступны для редактирования, кроме поля members . Поле перестало обновляться после добавления в него поисковых фильтров. В чем может быть проблема?
У меня есть этот код в модуле Company
admin.py
class ArrayFieldListFilter(admin.SimpleListFilter):
title = 'Members'
parameter_name = 'members'
def lookups(self, request, model_admin):
members = Company.objects.values_list("members", flat=True)
members = [(kw, kw) for sublist in members for kw in sublist if kw]
members = sorted(set(members))
return members
def queryset(self, request, queryset):
lookup_value = self.value()
if lookup_value:
queryset = queryset.filter(members__contains=[lookup_value])
return queryset
# Register your models here.
class CompanyAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'user', 'members', 'theme', 'date_created', 'description', 'status')
list_display_links = ('id', 'name')
list_filter = (ArrayFieldListFilter, 'name', 'user', 'members', 'date_created')
admin.site.register(Company, CompanyAdmin)
models.py
# Create your models here.
class Company(models.Model):
members = ArrayField(models.IntegerField(blank=True), blank=True)
...
serializers.py
class AccountSerializer(serializers.ModelSerializer):
user=serializers.StringRelatedField(read_only=False)
class Meta:
model=Account
fields='__all__'
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
class CompanySerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=False)
members = serializers.SerializerMethodField()
class Meta:
model = Company
fields = '__all__' #('id', 'name', 'description', 'date_created', 'user', 'status', 'theme', 'members')
def get_members(self, obj):
accounts = Account.objects.filter(id__in=obj.members)
return AccountSerializer(accounts, many=True).data
...