Python django可选格式保存

Python django可选格式保存,python,django,forms,Python,Django,Forms,我正在使用插件。从: 如果是从基于模型的查找扩展而来的查找,则新创建的项尚未保存到数据库中,保存应由表单处理 型号: class UserSettings(models.Model): user = models.ForeignKey(UserProfile, related_name='own_user') lookup_user = models.ManyToManyField(UserProfile, related_name='other_user') category

我正在使用插件。从:

如果是从基于模型的查找扩展而来的查找,则新创建的项尚未保存到数据库中,保存应由表单处理

型号:

class UserSettings(models.Model):
   user = models.ForeignKey(UserProfile, related_name='own_user')
   lookup_user = models.ManyToManyField(UserProfile, related_name='other_user')
   category = models.ManyToManyField(NewsCategory)
   tag = models.ManyToManyField(Tag)
表格:

查找:

class UserLookUp(ModelLookup):
    model = UserProfile
    search_fields = ('first_name__icontains', )

    filters = {'is_active': True, }

    def get_item_value(self, item):
        return item.get_full_name()

    def get_item_label(self, item):
        return u"(%s)" % (item.get_full_name())

registry.register(UserLookUp)



@login_required
class TagLookUp(ModelLookup):
    model = Tag
    search_fields = ('slug__icontains', )


    def get_item_value(self, item):
        return item.name

    def get_item_label(self, item):
        return u"(%s)" % (item.name)

registry.register(TagLookUp)
和视图:

def user_settings(request):
    try:
       set = UserSettings.objects.filter(blabla)[0]
    except:
       set = None
    if request.method == 'POST':
        form = UserSettingsForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = user
            obj.save()
            form.save_m2m()
            return HttpResponseRedirect('/')
    else:
        form = UserSettingsForm(instance=set)
    return render_to_response('main/settings.html', {'form':form,},
                              context_instance=RequestContext(request))
错误:

TypeError at /news/settings/
int() argument must be a string or a number, not 'list'
Request Method: POST
Request URL:    http://localhost:8000/news/settings/
Django Version: 1.4
Exception Type: TypeError
Exception Value:    
int() argument must be a string or a number, not 'list'
Exception Location: /Library/Python/2.7/site-packages/django/db/models/fields/__init__.py in get_prep_value, line 537
在django可选的情况下,表单无法与此视图一起保存。如何使用此插件保存表单


提前感谢

我已通过更换此解决了此问题:

category = TreeNodeChoiceField(
    required=False,
    queryset=NewsCategory.objects.filter(status=True, is_deleted =False), label=u"Kategori", widget=forms.SelectMultiple(attrs={'class':'uniformselect'})
    )
据此:

category = forms.ModelMultipleChoiceField(queryset=NewsCategory.objects.filter(parent__isnull=False, status=True, is_deleted=False)

为什么它不能拯救?你有错误吗?表格是否无效?我已编辑了我的问题。谢谢马克。这只是堆栈跟踪的一半(最多)。它没有指明无法保存的字段。request.POST.items()[(u'category',u'6'),(u'usersettings',u'Send'),(u'tag_0',u'2'),(u'lookup_user_0',u'),(u'lookup_user_1',u'4'),(u'csrfmiddlewaretoken',u'lucbebebobchcjyfxehqepa4drw3vcjkqsu但错误发生在form UserSettingsForm之后(request.POST)
category = forms.ModelMultipleChoiceField(queryset=NewsCategory.objects.filter(parent__isnull=False, status=True, is_deleted=False)