Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

259
Visualizações
modificar el formulario enlazado único_juntos django

Estoy tratando de modificar una fila existente de mi base de datos, es de una tabla intermedia llamada "CharacterSkill" con una restricción conjunta única:

modelos.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")

Hice un formulario para cambiar el nivel pero no puedo guardar el formulario, tengo dos mensajes de error de ambos campos "carácter" y "habilidad":

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

¿Puedes ayudar en eso por favor? :)

Mi formulario:

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

mi vista :

 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,})
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

basado en un libro, cambié la forma en que limité el formulario para usar la instancia:

 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,})
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda