0
안녕하세요. 기존 레코드를 업데이트하고 있지만 그럴 때마다 Truncated incorrect DOUBLE value: 'user1'
내보기 및 모델을 여기에 붙여 넣습니다. 위의에서보기django의 모델 양식을 사용하여 레코드 업데이트
def editbasicdetails(request):
if request.method == 'POST':
username = User.objects.filter(username = request.user)
instance = get_object_or_404(User, username = username)
form = EditBasicDetailsForm(request.POST,instance=instance)
if form.is_valid():
form.save()
return HttpResponseRedirect('/myprofile/')
else:
form = EditBasicDetailsForm(request.user)
return shortcuts.render_to_response('editbasicdetails.html',locals(),
context_instance = context.RequestContext(request))
모델 양식
class EditBasicDetailsForm(forms.ModelForm):
def __init__(self,user, *args, **kwargs):
super(EditBasicDetailsForm, self).__init__(*args, **kwargs)
userid = User.objects.filter(username = user).values('id')[0].get('id')
self.fields['username'] = forms.CharField(initial = user,
widget = forms.TextInput(attrs = {'readonly':'readonly'}))
class Meta:
model = BasicDetails
class BasicDetails(models.Model):
username = models.OneToOneField(User)
name = models.CharField(max_length = 100, verbose_name = "Name")
sex = models.CharField(max_length = 10, verbose_name = "Sex", choices = GENDER_CHOICES)
dob = models.DateField(verbose_name = "Date of Birth")
class Meta:
db_table = u'wed_basicdetails'
def __unicode__(self):
return u'%s' % (self.username)
모델
나에게 도와주세요 보기, 나는 사용자 이름을 그냥 지나치지 않고 있습니다. request.user
에서 사용자 이름 값을 얻고 있습니다.이 간단한 기능을 잘못 이해하고 있습니다.
-Vikram
Hi Raunak, 내가 양식을 변경하길 원하십니까? 위의 줄을 if 조건에 추가했지만 오류가 계속 발생합니다. – vkrams
그래야 __init__ 메서드를 제거하고 다시 시도 할 수 있습니다! –
데이터베이스에서 기존 값을 검색하기 위해 init 메소드를 사용하고 있습니다. 위의 질문에서 폼에 사용자 이름 만 게시했지만 모든 필드는'self.fields [ 'fieldname']' – vkrams