2017-04-21 6 views
0

を変更し、それがユニーク一緒に制約を持つ「CharacterSkill」という名前の中間のテーブルからです:は、私は私のデータベースの既存の行を修正しようとしているunique_together結合型のジャンゴ

models.py

class CharacterSkill(models.Model): 
    character = models.ForeignKey(Character, on_delete=models.CASCADE) 
    level = models.IntegerField(default=0) 
    skill = models.ForeignKey(Skill, on_delete=models.CASCADE) 
    class Meta: 
     unique_together = ("character","skill") 
ことができます

Select a valid choice. That choice is not one of the available choices. 

:私はレベルを変更するためのフォームをしましたが、私は、フォームを保存することができませんよ、私は両方のフィールドから2つのエラーメッセージ「文字」&「スキル」を持っている

あなたはそれを助けてください? :)

マイ形式:

class SkillCreateForm(forms.ModelForm): 
    class Meta: 
     model = CharacterSkill 
     fields = ('skill','level','character',) 

私の見解:本に基づい

def skill_update(request,skillpk,instancepk): 
    form = SkillCreateForm(request.POST) 
    user = User.objects.get (id = request.user.id) 
    instance = Character.objects.get (id = instancepk) 
    skill = CharacterSkill.objects.get(id = skillpk) 
    data = {'character' : instance, 
     'skill' : skill.skill, 
     'level' : skill.level, 
     } 
    if form.is_valid(): 
     form.save() 
     return redirect('persomaker:skill_list', instance.id) 
    else: 
     form = SkillCreateForm(data) 
     #form.fields['skill'].widget = HiddenInput() 
     #form.fields['character'].widget = HiddenInput() 
    return render(request, 'character/create_skill.html', 
    {'instance':instance, 
    'skill':skill, 
    'form': form,}) 

答えて

0

に、私は私がインスタンスを使用するフォームを有界方法を変更:

def skill_update(request,skillpk,instancepk): 

    user = User.objects.get (id = request.user.id) 
    instance = Character.objects.get (id = instancepk) 
    skill = CharacterSkill.objects.get(id = skillpk) 
    if request.method == "POST": 
     form = SkillModifyForm(request.POST,instance = skill,) 
     print (skill) 
     if form.is_valid(): 
      form.save() 
      return redirect('persomaker:skill_list', instance.id) 
    else: 
     form = SkillModifyForm(instance = skill,) 
    return render(request, 'character/create_skill.html', 
    {'instance':instance, 
    'skill':skill, 
    'form': form,}) 
関連する問題