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)