2017-05-02 176 views
-1

您好,我有UserSettings和用戶作爲使用ProfilePicture的可能性。問題是用戶不能更改他的任何配置文件設置。因爲我得到錯誤Unique Constraint failed或(這就是我現在得到)'int' object has no attribute '_committed'更改用戶配置文件

我認爲問題是在視圖中,但我不知道如何改變它。

我的模型:

class UserSettings(models.Model): 
profileimage = models.ImageField(verbose_name=_(u"Change Your Profilepicture"),upload_to=upload_location, 
        default=1, 
        blank=True, 
        ) 

Info = models.CharField(verbose_name=_(u"Tell us about yourself"),max_length=500,default="I'm a Human") 
status = 
City = models.CharField(verbose_name=_(u"Where are you from"),max_length=500,default='Earth') 
user = models.OneToOneField(User, default=1) 
objects = models.Manager() 
class Meta: 
    ordering =['-user'] 
def __unicode__(self): 
    return self.user.username 

筆者認爲:

@login_required 
    def userprofiletwo(request): 
    user = request.user 
    form = UserSettingsForm(request.POST or None, request.FILES or None) 
    if form.is_valid(): 
     user = request.user 
     form.save() 
     messages.success(request, 'Your personal Settings are Updated') 
     return redirect('userprofiletwo') 
    context = { 
    'form':form, 
    } 
    return render(request, 'userprofile/userprofiletwo.html', context) 

我試圖改變對模型FeoreignKey或多對多的OnetoOne場,但本作的,而不是來代替舊信息的新的UserProfiles新的信息。

謝謝你的建議。

+1

請在您的問題中檢查您的縮進,在您的代碼中。而且這是什麼:'status ='你怎麼沒有語法錯誤?並請確保錯誤的正確位置或錯誤轉儲的副本。 –

+0

必須閱讀:https://www.python.org/dev/peps/pep-0008/ – allcaps

回答

0

您需要將當前配置文件傳遞到表單中。

form = UserSettingsForm(request.POST or None, request.FILES or None, instance=request.user.profile) 
+0

謝謝。是的,我曾嘗試過。但它不起作用。必須將「instance = request.user.profile」更改爲「instance = user.usersettings」。現在所有的作品都很好:) – Marla