我目前正在使用Django中的一个表单让用户输入一个API密钥,然后保存该密钥。然而。我想让用户有机会在以后更改此密钥,或者添加一个,如果他们已经这样做了。但是,当我尝试输入一个新的API键时,它不会覆盖上一个条目。你知道吗
这是我的型号.py文件:
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
quandl_api = models.CharField(max_length=30, blank=True)
def __unicode__(self):
return self.user.username
这是我的表单.py文件:
class ChangeApiForm(forms.ModelForm):
quandl_api = forms.CharField(required=True)
class Meta:
model = UserProfile
fields = ('quandl_api',)
这是我的视图.py文件:
@login_required
def change_api(request):
context = RequestContext(request)
registered = False
if request.POST:
new_api_form = ChangeApiForm(request.POST, instance=request.user)
if new_api_form.is_valid():
new_api_form.save()
return HttpResponseRedirect('/account')
else:
new_api_form = ChangeApiForm()
return render_to_response('ui/change_api.html', {'new_api_form': new_api_form}, context_instance=RequestContext(request))
在我提交表单以输入一个新的API键之后,页面将刷新并将我带到在中指定的“accounts页面”视图.py文件。但是那里的API密钥仍然是旧的。你知道吗
您应该将UserProfile对象作为实例传递,而不是作为用户传递。你知道吗
相关问题 更多 >
编程相关推荐