碰巧我必须使用PostgreSQL数组。在Django模型中没有对数组的本机支持,所以我使用了django_arrayfields。但是为了在管理员中显示我应该用于字段hoprizontal_filter IntegerArrayField。
models.py
class Group(models.Model):
name = models.TextField()
class User(models.Model):
name = models.TextField()
groups = IntegerArrayField()
admin.py
class GroupAdminForm(forms.ModelForm):
groups = forms.ModelMultipleChoiceField(
queryset=Group.objects.all(),
label=('Select groups'),
required=True,
widget=FilteredSelectMultiple(
('groups'),
False,
))
class UserAdmin(admin.ModelAdmin):
fields = ('groups',)
form = GroupAdminForm
由于此小部件显示并正常工作。但是,保持写入不能适应类型'QuerySet'。
请帮助!!!
UPD: 在字段中请求信息POST变量组具有的值仅对应于所选组的最后一个ID。而不是我期望的数组。
答案 0 :(得分:1)
没有正确的错误/追溯就无法帮助。
对于您的更新点,请记住,如果您期望多个值,则需要执行request.POST.getlist(fieldname)
。
答案 1 :(得分:0)
因此,首先我们需要分离薄片:
admin.py
from .forms import GroupAdminForm
class UserAdmin(admin.ModelAdmin):
fields = ('groups',)
form = GroupAdminForm
forms.py
class GroupAdminForm(forms.ModelForm):
groups = forms.ModelMultipleChoiceField(
queryset=Group.objects.all(),
label=('Select groups'),
required=True,
widget=FilteredSelectMultiple(
('groups'),
False,
))
执行此操作并发布跟踪错误,如果没有日志或错误描述,很难提供帮助。